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.
