Module: wine Branch: master Commit: c0fca0a186acc004afcdad74e9c7b3e453a0140a URL: http://source.winehq.org/git/wine.git/?a=commit;h=c0fca0a186acc004afcdad74e9...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Mar 23 14:02:13 2007 +0100
ntdll: Avoid overwriting the result of the async I/O callback in NtFsControlFile.
---
dlls/ntdll/file.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c index dafe7aa..45786b0 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -941,9 +941,7 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
if (!event && io->u.Status == STATUS_PENDING) { - do - io->u.Status = NtWaitForSingleObject(internal_event, TRUE, NULL); - while(io->u.Status == STATUS_USER_APC); + while (NtWaitForSingleObject(internal_event, TRUE, NULL) == STATUS_USER_APC) /*nothing*/ ; } if (internal_event) NtClose(internal_event); } @@ -975,9 +973,7 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
if (!event && io->u.Status == STATUS_PENDING) { - do - io->u.Status = NtWaitForSingleObject(internal_event, TRUE, NULL); - while(io->u.Status == STATUS_USER_APC); + while (NtWaitForSingleObject(internal_event, TRUE, NULL) == STATUS_USER_APC) /*nothing*/ ; } if (internal_event) NtClose(internal_event); }