corrected handling of timeouts in wxConditionInternal::WaitTimeout(): check for wxSEMA_TIMEOUT, not wxSEMA_BUSY; return wxCOND_TIMEOUT, not wxCOND_MISC_ERROR (bug 1387179)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -148,7 +148,7 @@ wxCondError wxConditionInternal::WaitTimeout(unsigned long milliseconds)
|
||||
|
||||
wxSemaError err = m_semaphore.WaitTimeout(milliseconds);
|
||||
|
||||
if ( err == wxSEMA_BUSY )
|
||||
if ( err == wxSEMA_TIMEOUT )
|
||||
{
|
||||
// another potential race condition exists here it is caused when a
|
||||
// 'waiting' thread timesout, and returns from WaitForSingleObject, but
|
||||
@@ -174,7 +174,9 @@ wxCondError wxConditionInternal::WaitTimeout(unsigned long milliseconds)
|
||||
|
||||
m_mutex.Lock();
|
||||
|
||||
return err == wxSEMA_NO_ERROR ? wxCOND_NO_ERROR : wxCOND_MISC_ERROR;
|
||||
return err == wxSEMA_NO_ERROR ? wxCOND_NO_ERROR
|
||||
: err == wxSEMA_TIMEOUT ? wxCOND_TIMEOUT
|
||||
: wxCOND_MISC_ERROR;
|
||||
}
|
||||
|
||||
wxCondError wxConditionInternal::Signal()
|
||||
|
Reference in New Issue
Block a user