Commit Graph

43 Commits

Author SHA1 Message Date
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