[RFC] Async I/O patch: server code + ReadFileEx()

Mike McCormack mike_mccormack at start.com.au
Tue Dec 4 19:15:35 CST 2001


Hi Martin,

i hadn't heard from you in a while, so i though you might have given
up after nobody said anything about the last patch, but i see you've
been busy :-)

i also had a go at fixing the problems you pointed out. i've attached
the patch i've been working on... don't use it, it _will_ crash your
wineserver! i need to create a requeue async request like yours, and
activate my queues properly. The code is written to support async on
serial port objects, not file objects.

Some thoughts:

* Shouldn't each wineserver object should manage it's own queues? Many
different types of requests can be overlapped ... for example
WaitNamedPipe can be overlapped. Should every object keep a queue for
waiting on named pipes?

* wineserver should manage the timeouts and activation of requests (i
see we agree there)

* Wouldn't it be better to pass an status code back to the client
rather than the poll events? That way we can have STATUS_TIMEOUT,
STATUS_PENDING, STATUS_CANCELLED, etc. STATUS_PENDING can be the
signal to start reading/writing/etc.

Mike


Original message from: Martin Wilck <Martin.Wilck at fujitsu-siemens.com>
>
>
>Hi,
>
>here is a patch that fixes some of the issues with the async IO
>implementation in Wine that we discussed previously. My work on this
>was delayed by other duties, sorry. To make matters worse, I'll be
>out of office for the next 4 weeks (vacation :-)
>
>        THIS PATCH IS NOT FOR PRODUCTION USE.
>
>I am submitting it as a RFC to show the basic concepts I am aiming
at.
>Most important is the server-side code (server/async.h,
server/async.c)
>that demonstrates the basic mechanism I am suggesting.






------------------------------------------
mailto:Mike_McCormack at start.com.au
ph +82 16 430 0425

__________________________________________________________________
Get your free Australian email account at http://www.Looksmart.com.au
-------------- next part --------------
A non-text attachment was scrubbed...
Name: total.diff.gz
Type: application/x-gzip
Size: 9392 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20011205/cac89349/total.diff.bin


More information about the wine-devel mailing list