Commit Graph

27 Commits

Author SHA1 Message Date
Ben Noordhuis
12ee388cd9 test: clean up test-loop-handles.c 2012-05-29 17:35:30 +02:00
Ben Noordhuis
ec0c7b8958 test: fix double close in test-loop-handles.c 2012-05-29 17:35:30 +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
Ben Noordhuis
6c2a2aa250 test: don't assume unref'd timer cb runs 2012-04-18 02:54:57 +02:00
Bruce Mitchener
d513d9bb41 Fix typos. 2011-11-30 14:35:13 +01:00
Bert Belder
0dc564a2aa Remove uv_init calls from tests and benchmarks 2011-09-12 11:32:41 -07:00
Bert Belder
3aec77f9d4 bring back uv_init 2011-08-31 04:19:07 +02:00
Ryan Dahl
56dcaf9b06 unix: multiplicity 2011-08-31 04:18:55 +02:00
Bert Belder
9d8c9cce7c Move loop reference tests to their own file 2011-07-21 14:51:56 +02:00
Ryan Dahl
b931c9313f uv_close returns void 2011-07-20 18:03:48 -07:00
Ryan Dahl
ce8ff3031c src/ and include/ directories
Helps #71 but does not update the MSVC files.
2011-07-07 07:52:57 -07:00
Bert Belder
4eb06151bd Split up uv_loop type 2011-06-17 23:00:39 +02:00
Ryan Dahl
04b6aaeb44 API Change: Move close_cb to uv_close from init functions 2011-06-08 05:44:22 -07:00
Ryan Dahl
7db9629f87 API Change: Remove data parameters from init functions 2011-06-08 05:43:02 -07:00
Ryan Dahl
7770b1a1f6 API change: alloc_cb moved to uv_read_start()
Fixes #47.
2011-06-03 02:30:00 -07:00
Ryan Dahl
11a4ad50c8 Separate out uv_handle_t into different types
Fixes #4
2011-06-03 11:03:52 +02:00
Ryan Dahl
40f0ad6d36 unix: fix ref count tests 2011-05-22 12:56:54 -07:00
Ryan Dahl
1352c72e35 Add reference count tests
Broken on UNIX.
2011-05-22 12:56:49 -07:00
Bert Belder
810651e04c Update tests & benchmarks to use the new timer api 2011-05-17 01:17:48 +02:00
Ryan Dahl
2b8812ffe1 uv_buf -> uv_buf_t 2011-05-13 07:15:02 -07:00
Ryan Dahl
2ef3c6c632 oio -> uv 2011-05-11 20:21:49 -07:00
Bert Belder
820c942e3a Make MS happy, declare variables first 2011-05-09 16:59:20 +02:00
Ryan Dahl
67118c0b58 unix: initial implementation of prepare, check, idle
Had to comment out a few of the asserts in the test.
2011-05-09 01:02:06 -07:00
Bert Belder
517a296c85 Add checks to test-loop-handles 2011-05-09 05:41:12 +02:00
Ryan Dahl
ba31e8d0fa Add _t to typedef structs 2011-05-08 02:40:39 -07:00
Bert Belder
5a5b435c5e Minor test-loop-handles fix 2011-05-08 05:08:31 +02:00
Bert Belder
e0be8efef6 Test for oio_prepare/oio_check/oio_idle 2011-05-08 04:45:56 +02:00