[PATCH] rtworkq: Invoke cancelled waiting item with RTWQ_E_OPERATION_CANCELLED.
Nikolay Sivov
nsivov at codeweavers.com
Thu May 7 11:04:49 CDT 2020
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/rtworkq/queue.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/rtworkq/queue.c b/dlls/rtworkq/queue.c
index ce06df1c8c..07d124cfb7 100644
--- a/dlls/rtworkq/queue.c
+++ b/dlls/rtworkq/queue.c
@@ -866,7 +866,11 @@ static HRESULT queue_cancel_item(struct queue *queue, RTWQWORKITEM_KEY key)
{
key >>= 32;
if ((key & WAIT_ITEM_KEY_MASK) == WAIT_ITEM_KEY_MASK)
+ {
+ IRtwqAsyncResult_SetStatus(item->result, RTWQ_E_OPERATION_CANCELLED);
+ invoke_async_callback(item->result);
CloseThreadpoolWait(item->u.wait_object);
+ }
else if ((key & SCHEDULED_ITEM_KEY_MASK) == SCHEDULED_ITEM_KEY_MASK)
CloseThreadpoolTimer(item->u.timer_object);
else
--
2.26.2
More information about the wine-devel
mailing list