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