I/O Completion Ports Implementation

Robert Shearman R.J.Shearman at warwick.ac.uk
Tue Nov 11 17:50:30 CST 2003


> -----Original Message-----
> From: Alexandre Julliard [mailto:julliard at winehq.com]
> Sent: 11 November 2003 21:03
> To: Robert Shearman
> Cc: wine-devel at winehq.org
> Subject: Re: I/O Completion Ports Implementation
>
> Robert Shearman <R.J.Shearman at 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





More information about the wine-devel mailing list