[PATCH 1/7] server: Allow calling async_terminate() with STATUS_PENDING.

Zebediah Figura zfigura at codeweavers.com
Wed Sep 1 17:28:35 CDT 2021


We still don't quite handle this completely correctly, but we should at least
avoid crashing the server due to a failed assertion.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 server/async.c  | 2 --
 server/device.c | 1 -
 2 files changed, 3 deletions(-)

diff --git a/server/async.c b/server/async.c
index 1c3082083ed..b414604fcd4 100644
--- a/server/async.c
+++ b/server/async.c
@@ -156,8 +156,6 @@ static void async_destroy( struct object *obj )
 /* notifies client thread of new status of its async request */
 void async_terminate( struct async *async, unsigned int status )
 {
-    assert( status != STATUS_PENDING );
-
     if (async->terminated) return;
 
     async->terminated = 1;
diff --git a/server/device.c b/server/device.c
index b669921a003..ef93a0a9024 100644
--- a/server/device.c
+++ b/server/device.c
@@ -386,7 +386,6 @@ static void set_irp_result( struct irp_call *irp, unsigned int status,
 
     if (!file) return;  /* already finished */
 
-    /* FIXME: handle the STATUS_PENDING case */
     iosb->status = status;
     iosb->result = result;
     iosb->out_size = min( iosb->out_size, out_size );
-- 
2.33.0




More information about the wine-devel mailing list