Module: wine Branch: master Commit: 602807c2a5afca3feba11b5f4d56f1c38cb48665 URL: http://source.winehq.org/git/wine.git/?a=commit;h=602807c2a5afca3feba11b5f4d...
Author: Jörg Höhle hoehle@users.sourceforge.net Date: Tue Mar 6 19:07:44 2012 +0100
ntdll: Do not execute callbacks past DeleteTimer(INVALID_HANDLE_VALUE).
---
dlls/ntdll/threadpool.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/dlls/ntdll/threadpool.c b/dlls/ntdll/threadpool.c index bd6e06b..81abac3 100644 --- a/dlls/ntdll/threadpool.c +++ b/dlls/ntdll/threadpool.c @@ -1015,7 +1015,11 @@ NTSTATUS WINAPI RtlDeleteTimer(HANDLE TimerQueue, HANDLE Timer, return STATUS_INVALID_PARAMETER_1; q = t->q; if (CompletionEvent == INVALID_HANDLE_VALUE) + { status = NtCreateEvent(&event, EVENT_ALL_ACCESS, NULL, SynchronizationEvent, FALSE); + if (status == STATUS_SUCCESS) + status = STATUS_PENDING; + } else if (CompletionEvent) event = CompletionEvent;
@@ -1029,7 +1033,10 @@ NTSTATUS WINAPI RtlDeleteTimer(HANDLE TimerQueue, HANDLE Timer, if (CompletionEvent == INVALID_HANDLE_VALUE && event) { if (status == STATUS_PENDING) + { NtWaitForSingleObject(event, FALSE, NULL); + status = STATUS_SUCCESS; + } NtClose(event); }