-----Original Message----- From: Alexandre Julliard [mailto:julliard@winehq.com] Sent: 11 November 2003 21:03 To: Robert Shearman Cc: wine-devel@winehq.org Subject: Re: I/O Completion Ports Implementation
Robert Shearman R.J.Shearman@warwick.ac.uk writes:
This has been hanging around in my tree for a while. This is
useful for RPC
and for eventually implementing QueueUserWorkItem.
Changelog: Implement I/O completion ports
You should use the normal waiting mechanisms, instead of creating a new type of waiting request which requires exporting a bunch of private functions. This means there should be only a single remove_io_completion request, and the wait should be done with a standard WaitForSingleObject.
WaitForSingleObject(hIoCompletion, INFINITE) returns straight away with WAIT_OBJECT_0 on Windows. Using it would break this behaviour (which of course any sane apps would not depend on). I'd rather have a completely correct implementation now with minor changes. (Although I could move the Nt* functions into sync.c to save 'exporting' wait_reply).
In short, the way I've done it works and shouldn't have to be changed later.
Rob