libuv/include/uv-private
Ben Noordhuis be2a2176ce unix: rethink relaxed accept() approach
Benchmarks demonstrated that the idle timer handle approach didn't balance the
load quite fair enough, the majority of new connections still ended up in one
or two processes.

The new approach voluntarily gives up a scheduler timeslice by calling
nanosleep() with a one nanosecond timeout.

Why not sched_yield()? Because on Linux (and this is probably true for other
Unices as well), sched_yield() only yields if there are other processes running
on the same CPU.

nanosleep() on the other hand always forces the process to sleep, which gives
other processes a chance to accept our pending connections.
2012-09-18 00:16:43 +02:00
..
eio.h Allow headers to be included with -Werror and -Wundef 2012-08-09 01:09:09 +02:00
ev.h unix: fix event loop stall 2012-06-06 05:12:28 +02:00
ngx-queue.h Allow headers to be included with -Werror and -Wundef 2012-08-09 01:09:09 +02:00
tree.h Rename __unused to UV__UNUSED. 2012-04-03 17:41:50 +02:00
uv-bsd.h freebsd: fix build breakage introduced in 3b69c0f 2012-08-29 22:27:27 +02:00
uv-darwin.h darwin: use FSEvents to watch directory changes 2012-09-12 23:38:57 +02:00
uv-linux.h unix: split up uv-unix.h 2012-08-17 16:42:31 +02:00
uv-sunos.h unix: split up uv-unix.h 2012-08-17 16:42:31 +02:00
uv-unix.h unix: rethink relaxed accept() approach 2012-09-18 00:16:43 +02:00
uv-win.h windows: remove unnecessary pointer alignment code 2012-09-14 01:48:41 +02:00