The current notification options for the aio family of functions are sorely
lacking. This is most obviously shown by the fact that libuv relies on an
internal threadpool instead of using the widely-available POSIX AIO. The
main reason is the lack of support and poor notification methods.
SIGEV_THREAD is trivially slower than just using a threadpool. SIGEV_SIGNAL
relies on signals, which are known to be flawed, and SIGSIGEV_NONE
shouldn't even need to mentioned.

The obvious solution to this is to add is a copy of SIGEV_KEVENT: A
function to set up an event queue, a function to tear down an event queue,
and a function to remove an event form the queue. This would allow both
better sympathy with the underlying OS features, and make it more usable to
intergrate into existing applications. I have benn pondering this for a
~month, so if you have any questions, just ask.

>From Dhruv.

Reply via email to