Don't dispatch messages while waiting in worker thread in wxMSW.
We only want to continue dispatching messages while waiting for another thread to terminate if we are waiting in the main thread. Closes #12618. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -235,11 +235,12 @@ bool wxGUIAppTraits::DoMessageFromThreadWait()
|
|||||||
|
|
||||||
DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread)
|
DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread)
|
||||||
{
|
{
|
||||||
// if we don't have a running event loop, we shouldn't wait for the
|
// We only ever dispatch messages from the main thread and, additionally,
|
||||||
// messages as we never remove them from the message queue and so we enter
|
// even from the main thread we shouldn't wait for the message if we don't
|
||||||
// an infinite loop as MsgWaitForMultipleObjects() keeps returning
|
// have a running event loop as we would never remove them from the message
|
||||||
// WAIT_OBJECT_0 + 1
|
// queue then and so we would enter an infinite loop as
|
||||||
if ( !wxEventLoop::GetActive() )
|
// MsgWaitForMultipleObjects() keeps returning WAIT_OBJECT_0 + 1.
|
||||||
|
if ( !wxIsMainThread() || !wxEventLoop::GetActive() )
|
||||||
return DoSimpleWaitForThread(hThread);
|
return DoSimpleWaitForThread(hThread);
|
||||||
|
|
||||||
return ::MsgWaitForMultipleObjects
|
return ::MsgWaitForMultipleObjects
|
||||||
|
Reference in New Issue
Block a user