consume less CPU while waiting for thread to terminate (patch 883268)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2004-02-07 13:49:18 +00:00
parent 811697104b
commit 7d0bf46a34

View File

@ -777,15 +777,24 @@ wxThreadInternal::WaitForTerminate(wxCriticalSection& cs,
// although the thread might be already in the EXITED state it might not
// have terminated yet and so we are not sure that it has actually
// terminated if the "if" above hadn't been taken
do
for ( ;; )
{
if ( !::GetExitCodeThread(m_hThread, (LPDWORD)&rc) )
{
wxLogLastError(wxT("GetExitCodeThread"));
rc = (wxThread::ExitCode)-1;
break;
}
} while ( (DWORD)rc == STILL_ACTIVE );
if ( (DWORD)rc != STILL_ACTIVE )
break;
// give the other thread some time to terminate, otherwise we may be
// starving it
::Sleep(1);
}
if ( pRc )
*pRc = rc;