- result = ::MsgWaitForMultipleObjects
- (
- 1, // number of objects to wait for
- &m_hThread, // the objects
- false, // don't wait for all objects
- INFINITE, // no timeout
- QS_ALLINPUT | // return as soon as there are any events
- QS_ALLPOSTMESSAGE
- );
-
- switch ( result )
- {
- case 0xFFFFFFFF:
- // error
- wxLogSysError(_("Can not wait for thread termination"));
- Kill();
- return wxTHREAD_KILLED;
-
- case WAIT_OBJECT_0:
- // thread we're waiting for terminated
- break;
-
- case WAIT_OBJECT_0 + 1:
- // new message arrived, process it -- but only if we're the
- // main thread as we don't support processing messages in
- // the other ones
- //
- // NB: we still must include QS_ALLINPUT even when waiting
- // in a secondary thread because if it had created some
- // window somehow (possible not even using wxWidgets)
- // the system might dead lock then
- if ( wxThread::IsMain() )