]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/threadpsx.cpp
Added support for delayed deactivation of windows (for MDI)
[wxWidgets.git] / src / unix / threadpsx.cpp
index 73348a50ce7ef4500ef903e3e7371541d419b880..597f87eb8dab0f164b498bad88bf414aeabe6da1 100644 (file)
@@ -166,6 +166,12 @@ private:
     friend class wxConditionInternal;
 };
 
+#ifdef HAVE_PTHREAD_MUTEXATTR_T
+// on some systems pthread_mutexattr_settype() is not in the headers (but it is
+// in the library, otherwise we wouldn't compile this code at all)
+extern "C" int pthread_mutexattr_settype(pthread_mutexattr_t *, int);
+#endif
+
 wxMutexInternal::wxMutexInternal(wxMutexType mutexType)
 {
     int err;
@@ -532,8 +538,17 @@ wxSemaError wxSemaphoreInternal::WaitTimeout(unsigned long milliseconds)
             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--;
@@ -988,8 +1003,8 @@ int wxThread::GetCPUCount()
         wxString s;
         if ( file.ReadAll(&s) )
         {
-            // (ab)use Replace() to find the number of "processor" strings
-            size_t count = s.Replace(_T("processor"), _T(""));
+            // (ab)use Replace() to find the number of "processor: num" strings
+            size_t count = s.Replace(_T("processor\t:"), _T(""));
             if ( count > 0 )
             {
                 return count;