Alexandre Julliard wrote:
Michael McCormack mccormac@aals27.alcatel.com.au writes:
This patch moves responsibility for asynchronous I/O to the client process. i'm posting it to wine-devel because i want to know what other developers here think about the technique i've used to make this work...
Your approach is not going to work with the latest changes I made to the server. The good news is that the changes I'm making are in part to allow making server calls in signal handlers, so when this works you should be able to use SIGIO to do async IO.
IMHO the path to optimize is not async I/O in general, but async I/O through completion ports. This is the preferred method for doing high performance I/O under NT, I think.
And it might be easier to optimize because it doesn't focus on async actions visible from userspace; the main way the user code knows the async I/O is done there is by polling the completion port.
cf. http://www.kegel.com/c10k.html - Dan