summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
bd63e36)
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
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
- // 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
return DoSimpleWaitForThread(hThread);
return ::MsgWaitForMultipleObjects