]> git.saurik.com Git - wxWidgets.git/commitdiff
corrected handling of timeouts in wxConditionInternal::WaitTimeout(): check for wxSEM...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Dec 2005 01:20:38 +0000 (01:20 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Dec 2005 01:20:38 +0000 (01:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/thrimpl.cpp

index d0cf9fd610b2d3bc1c22d04fb7941c274978b409..54f6dd2bfde516728c0c8c6d785da50e8920580f 100644 (file)
@@ -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()