Author: jimtabor Date: Sun Oct 30 15:44:31 2011 New Revision: 54275
URL: http://svn.reactos.org/svn/reactos?rev=54275&view=rev Log: [Win32k] - don't hangup on the user while in send message.
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/msgqueue.c [iso-8859-1] Sun Oct 30 15:44:31 2011 @@ -663,6 +663,7 @@ PUSER_SENT_MESSAGE SaveMsg, Message; PLIST_ENTRY Entry; PTHREADINFO pti; + BOOL Ret; LRESULT Result = 0;
if (IsListEmpty(&MessageQueue->SentMessagesListHead)) @@ -732,7 +733,8 @@ RemoveEntryList(&Message->ListEntry); InsertTailList(&Message->CallBackSenderQueue->SentMessagesListHead, &Message->ListEntry); TRACE("Callback Message not processed yet. Requeuing the message\n"); - return (FALSE); + Ret = FALSE; + goto Exit; } } else @@ -760,7 +762,8 @@ MsqWakeQueue(Message->CallBackSenderQueue, QS_SENDMESSAGE, TRUE); IntDereferenceMessageQueue(Message->CallBackSenderQueue); } - return (TRUE); + Ret = TRUE; + goto Exit; }
/* remove the message from the dispatching list if needed, so lock the sender's message queue */ @@ -808,12 +811,13 @@
/* free the message */ ExFreePoolWithTag(Message, TAG_USRMSG); - + Ret = TRUE; +Exit: /* do not hangup on the user if this is reentering */ if (!SaveMsg) pti->pcti->CTI_flags &= ~CTI_INSENDMESSAGE; pti->pusmCurrent = SaveMsg;
- return(TRUE); + return Ret; }
VOID APIENTRY