Bert Belder
c4dbb60cff
windows: basic signal handling support with uv_signal_t
...
This still needs tests.
2012-08-17 19:38:29 +02:00
Ben Noordhuis
837edf4c0f
unix, windows: remove handle init counters
...
Remove the handle init counters, no one uses them.
2012-08-10 02:00:11 +02:00
Bert Belder
a069956996
Remove c-ares integrations
2012-08-07 01:03:52 +02:00
Bert Belder
d8b95eaffb
windows: inline a couple of handle functions
2012-06-02 23:38:16 +02:00
Bert Belder
d402604118
windows: inline a couple of inline request functions
2012-06-02 23:08:22 +02:00
Bert Belder
ec95a07d00
windows/util: move initialization code to uv__util_init
2012-06-02 20:35:14 +02:00
Bert Belder
cd1298c388
windows: retrieve function pointers before doing anything else
2012-06-02 20:20:51 +02:00
Brian White
4252240e54
windows: add uv__once_init() that ensures that libuv has been initialized
2012-06-02 20:05:12 +02:00
Bert Belder
0c727fd774
windows: don't crash
2012-05-31 17:34:53 +02:00
Bert Belder
e4f23aacec
Get rid of UV_LEAN_AND_MEAN
2012-05-28 01:53:22 +02:00
Ben Noordhuis
7c8313bd0f
unix, windows: make uv_run_once() return a bool
...
The return value of uv_run_once() now signals if it needs to be called again.
Fixes #427 .
2012-05-23 20:49:03 +02:00
Bert Belder
c06edd4c88
windows, unix: share c-ares glue code
2012-05-22 16:11:22 +02:00
Ben Noordhuis
9efa8b3571
unix, windows: rework reference counting scheme
...
This commit changes how the event loop determines if it needs to stay alive.
Previously, an internal counter was increased whenever a handle got created
and decreased again when the handle was closed.
While conceptually simple, it turned out hard to work with: you often want
to keep the event loop alive only if the handle is actually doing something.
Stopped or inactive handles were a frequent source of hanging event loops.
That's why this commit changes the reference counting scheme to a model where
a handle only references the event loop when it's active. 'Active' means
different things for different handle types, e.g.:
* timers: ticking
* sockets: reading, writing or listening
* processes: always active (for now, subject to change)
* idle, check, prepare: only active when started
This commit also changes how the uv_ref() and uv_unref() functions work: they
now operate on the level of individual handles, not the whole event loop.
The Windows implementation was done by Bert Belder.
2012-05-17 07:07:53 +02:00
Bert Belder
d7a71761c4
Windows: implement uv_poll
2012-05-03 15:52:52 +02:00
Bert Belder
42a86693a7
Windows: set loop counters to zero in uv_loop_init
2012-04-25 00:30:07 +02:00
Ben Noordhuis
dfda5009c2
unix, win: store ares handles in a binary tree
...
Store the uv_ares_task_t handles in a red-black tree, not a linked list.
Fixes #72 .
2012-03-16 00:49:29 +01:00
Frank Denis
1c8cf617f9
windows: initialize ares handles list
...
We need to initialize the ares handles linked list or else bad things can happen
when we try to perform async lookups.
2012-03-08 15:12:23 +01:00
Ben Noordhuis
fbbc085448
Rename COUNTOF() to ARRAY_SIZE().
...
Consistent with Node, it has an ARRAY_SIZE() macro but not COUNTOF().
2012-01-18 15:48:31 +01:00
Igor Zinkovsky
52511b9ddc
windows: implement uv_loop_new+uv_loop_delete
2012-01-16 17:07:49 -08:00
Ben Noordhuis
71f6c0edb8
Merge remote-tracking branch 'origin/v0.6'
...
Conflicts:
src/win/util.c
2012-01-16 18:07:49 +01:00
Ben Noordhuis
6d9c9a533f
Add uv_loop_refcount() function, debug tool.
2012-01-14 00:33:08 +01:00
mattn
e53cecb8c0
add uv_run_once()
2011-12-14 14:28:35 +01:00
Bruce Mitchener
d513d9bb41
Fix typos.
2011-11-30 14:35:13 +01:00
Bert Belder
fce90652ed
Windows: avoid the loop starvation bug. Closes GH-154
2011-11-28 19:36:41 +01:00
Ben Noordhuis
16d48befba
win: add uv_loop_new() and uv_loop_delete() stubs
2011-11-06 04:08:43 +01:00
Ben Noordhuis
7b973eb4ad
Fix uv_loop_new() and uv_default_loop() function prototypes.
2011-11-06 04:04:32 +01:00
Igor Zinkovsky
7a53924aed
windows: call SetErrorMode on startup to ask the system not to handle critical errors
2011-11-01 15:36:04 -07:00
Igor Zinkovsky
90b0b7d099
windows: increase the number of OVERLAPPED_ENTRYs passed to GetQueuedCompletionStatusEx
2011-11-01 10:27:46 -07:00
Igor Zinkovsky
e7a53aed48
fix windows build
2011-09-28 11:52:08 -07:00
Bert Belder
622eb99113
win: implement tty
...
loose end: line-buffered input reads ascii, not unicode
2011-09-26 19:31:32 +02:00
Bert Belder
f790b689a7
Remove uv_init from uv.h and windows backend
2011-09-12 11:32:41 -07:00
Bert Belder
7b87ff7c9b
win: rename uv_loop_t.ares_channel to ares_chan to avoid confusing g++
2011-09-04 21:54:31 +02:00
Bert Belder
78debf9f67
win: multiplicity
2011-08-31 04:19:16 +02:00
Igor Zinkovsky
25175c7071
uv_fs & uv_work APIs
2011-08-26 11:00:53 -07:00
Bert Belder
5cae6e4e57
win: use uv_req_t.overlapped.Internal field to propagate request errors
2011-08-23 21:24:14 +02:00
Bert Belder
d1a63c4003
win: move winsock intialization out of tcp.c
2011-08-21 21:46:40 +02:00
Jeroen Janssen
507c4ccea6
fixes for unsigned/signed comparison
2011-08-17 13:58:55 +02:00
Igor Zinkovsky
fc26321890
use GetQueuedCompletionStatusEx if the OS supports it
2011-08-15 12:13:47 -07:00
Bert Belder
a2ee4854c6
Windows: dynamically load some ntdll functions
2011-08-12 02:44:00 +02:00
Bert Belder
5b532d5f60
Windows: do not hang if LOOP->refs become 0 in a prepare callback
2011-07-21 14:57:27 +02:00
Bert Belder
6e505766be
Windows: follow libev loop semantics more closely
2011-07-21 04:25:01 +02:00
Bert Belder
ca3cfbae74
Windows: use low-res event loop clock.
...
For much better performance. Closes #88 .
2011-07-19 17:32:43 +02:00
Bert Belder
3a91232f66
Split up uv-win.c
2011-07-19 03:47:30 +02:00