Getting rid of async.h
Eric Pouech
pouech-eric at wanadoo.fr
Sat Dec 11 06:54:57 CST 2004
The main goal of this patch is to remove include/async.h
Basically, the asynchronous operations's implementation is changed in the
following way:
- async op:s are no longer automatically requeued in the server, it's up to the
client to do it (it simplifies the interface, and removes some races conditions)
- for each async op queued in the server, the callback will be called only once.
The callback signature has changed to match PIO_APC_ROUTINE, which is closer to
NT behavior.
- this requires separating (in two different lumps of memory) the
IO_STATUS_BLOCK and the called specific information. We also pass the two lumps
to the server, and in the I/O APC for callback
- cancelling an IO has been entirely moved to the server (through a new server
request)
- we maintain on the client side whether there's still some pending async op on
the current thread (this is needed in optimizing some wait operations)
- server/async.[ch] have been removed (there wasn't much left in them)
- on server side, the queue structure has been removed and replaced by a simple
linked list
A+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: async.diff
Type: text/x-patch
Size: 100324 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20041211/e5273411/async.bin
More information about the wine-patches
mailing list