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:
parent
bd63e363c2
commit
ef0fdf3914
@ -235,11 +235,12 @@ bool wxGUIAppTraits::DoMessageFromThreadWait()
|
||||
|
||||
DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread)
|
||||
{
|
||||
// if we don't have a running event loop, we shouldn't wait for the
|
||||
// messages as we never remove them from the message queue and so we enter
|
||||
// an infinite loop as MsgWaitForMultipleObjects() keeps returning
|
||||
// WAIT_OBJECT_0 + 1
|
||||
if ( !wxEventLoop::GetActive() )
|
||||
// We only ever dispatch messages from the main thread and, additionally,
|
||||
// even from the main thread we shouldn't wait for the message if we don't
|
||||
// have a running event loop as we would never remove them from the message
|
||||
// queue then and so we would enter an infinite loop as
|
||||
// MsgWaitForMultipleObjects() keeps returning WAIT_OBJECT_0 + 1.
|
||||
if ( !wxIsMainThread() || !wxEventLoop::GetActive() )
|
||||
return DoSimpleWaitForThread(hThread);
|
||||
|
||||
return ::MsgWaitForMultipleObjects
|
||||
|
Loading…
Reference in New Issue
Block a user