[PATCH 01/12] server: Introduce create_server_async and use it in read request handler.

Jacek Caban jacek at codeweavers.com
Tue Jun 13 09:46:41 CDT 2017


This series is motivated by perf improvements for named pipes. With
those patches, if request result is available immediately, it's
transferred to client in just two server requests (in some cases, with
some compromises, it would be possible to change that to one request),
without using system APCs. I implemented that by using a request reply
that sends both (already signalled) wait handle and request result.
Server knows that data has been transferred and iosb status set in
client when client attempts to wait and uses that to finish async operation.

To implement that, I moved more logic into async object (and a bit to fd
requests). The nice result is that different fd operations need to care
less about protocol details.

Also, while doing that, I changed ioctl as well. The nice effect of that
is that it's handled correctly now for cases that were ignored
previously. Not only server has a control over when to set iosb and when
fail "early" without doing that. It also always takes care of signalling
request completion.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
 server/async.c | 14 ++++++++++++++
 server/fd.c    | 14 ++++----------
 server/file.h  |  1 +
 3 files changed, 19 insertions(+), 10 deletions(-)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-server-Introduce-create_server_async-and-use-it-in-re.diff
Type: text/x-patch
Size: 2528 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20170613/05462e9e/attachment.bin>


More information about the wine-patches mailing list