Zebediah Figura : server: Use async->iosb->status instead of async->status in async_satisfied().

Alexandre Julliard julliard at winehq.org
Wed Sep 1 15:45:09 CDT 2021


Module: wine
Branch: master
Commit: 8e7a5ec81724917687b9f200e03f56545c8ee2af
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8e7a5ec81724917687b9f200e03f56545c8ee2af

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Tue Aug 31 19:23:49 2021 -0500

server: Use async->iosb->status instead of async->status in async_satisfied().

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 server/async.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/server/async.c b/server/async.c
index 086e5eb2870..7890122969f 100644
--- a/server/async.c
+++ b/server/async.c
@@ -112,13 +112,16 @@ static void async_satisfied( struct object *obj, struct wait_queue_entry *entry
     struct async *async = (struct async *)obj;
     assert( obj->ops == &async_ops );
 
+    /* we only return an async handle for asyncs created via create_request_async() */
+    assert( async->iosb );
+
     if (async->direct_result)
     {
         async_set_result( &async->obj, async->iosb->status, async->iosb->result );
         async->direct_result = 0;
     }
 
-    set_wait_status( entry, async->status );
+    set_wait_status( entry, async->iosb->status );
 
     /* close wait handle here to avoid extra server round trip */
     if (async->wait_handle)
@@ -398,6 +401,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
         if (async->timeout) remove_timeout_user( async->timeout );
         async->timeout = NULL;
         async->status = status;
+        if (async->iosb) async->iosb->status = status;
 
         if (async->data.apc)
         {




More information about the wine-cvs mailing list