From 3c43df8aa0f66b680c65e6fadf42bdbd91a08e53 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 1 Jul 2002 18:20:16 +0000 Subject: [PATCH] Release the Win16 lock before waiting in MsgWaitForMultipleObjectsEx. --- windows/message.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/windows/message.c b/windows/message.c index dc8b530e91d..de494f7953f 100644 --- a/windows/message.c +++ b/windows/message.c @@ -689,7 +689,7 @@ DWORD WINAPI MsgWaitForMultipleObjectsEx( DWORD count, CONST HANDLE *pHandles, DWORD timeout, DWORD mask, DWORD flags ) { HANDLE handles[MAXIMUM_WAIT_OBJECTS]; - DWORD i, ret; + DWORD i, ret, lock; MESSAGEQUEUE *msgQueue; if (count > MAXIMUM_WAIT_OBJECTS-1) @@ -714,7 +714,7 @@ DWORD WINAPI MsgWaitForMultipleObjectsEx( DWORD count, CONST HANDLE *pHandles, for (i = 0; i < count; i++) handles[i] = pHandles[i]; handles[count] = msgQueue->server_queue; - + ReleaseThunkLock( &lock ); if (USER_Driver.pMsgWaitForMultipleObjectsEx) { ret = USER_Driver.pMsgWaitForMultipleObjectsEx( count+1, handles, timeout, mask, flags ); @@ -723,6 +723,7 @@ DWORD WINAPI MsgWaitForMultipleObjectsEx( DWORD count, CONST HANDLE *pHandles, else ret = WaitForMultipleObjectsEx( count+1, handles, flags & MWMO_WAITALL, timeout, flags & MWMO_ALERTABLE ); + if (lock) RestoreThunkLock( lock ); return ret; }