git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20155
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
bool IsOk() const { return m_semaphore != NULL; }
wxSemaError Wait() { return WaitTimeout(INFINITE); }
- wxSemaError TryWait() { return WaitTimeout(0); }
+
+ wxSemaError TryWait()
+ {
+ wxSemaError rc = WaitTimeout(0);
+ if ( rc == wxSEMA_TIMEOUT )
+ rc = wxSEMA_BUSY;
+
+ return rc;
+ }
+
wxSemaError WaitTimeout(unsigned long milliseconds);
wxSemaError Post();
return wxSEMA_NO_ERROR;
case WAIT_TIMEOUT:
- return wxSEMA_BUSY;
+ return wxSEMA_TIMEOUT;
default:
wxLogLastError(_T("WaitForSingleObject(semaphore)"));
return wxSEMA_TIMEOUT;
}
- if ( m_cond.WaitTimeout(remainingTime) != wxCOND_NO_ERROR )
- return wxSEMA_MISC_ERROR;
+ switch ( m_cond.WaitTimeout(remainingTime) )
+ {
+ case wxCOND_TIMEOUT:
+ return wxSEMA_TIMEOUT;
+
+ default:
+ return wxSEMA_MISC_ERROR;
+
+ case wxCOND_NO_ERROR:
+ ;
+ }
}
m_count--;