]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/classic/thread.cpp
pango_font_description_get_family() can return NULL
[wxWidgets.git] / src / mac / classic / thread.cpp
index 5e322a719d2eb0b8f820ce62b2499813e1a194cf..ee31c8e7df788fda13221a798acd9a65e438ad27 100644 (file)
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-    #pragma implementation "thread.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -77,12 +73,18 @@ public :
     wxMacStCritical()
     {
         if ( UMASystemIsInitialized() )
     wxMacStCritical()
     {
         if ( UMASystemIsInitialized() )
-            ThreadBeginCritical() ;
+        {
+            OSErr err = ThreadBeginCritical() ;
+            wxASSERT( err == noErr ) ;
+        }
     }
     ~wxMacStCritical()
     {
         if ( UMASystemIsInitialized() )
     }
     ~wxMacStCritical()
     {
         if ( UMASystemIsInitialized() )
-            ThreadEndCritical() ;
+        {
+            OSErr err = ThreadEndCritical() ;
+            wxASSERT( err == noErr ) ;
+    }
     }
 };
 
     }
 };
 
@@ -133,6 +135,7 @@ wxMutexError wxMutexInternal::Lock()
             m_waiters.Add(current);
             err = ::SetThreadStateEndCritical(kCurrentThreadID, kStoppedThreadState, m_owner);
             err = ::ThreadBeginCritical();
             m_waiters.Add(current);
             err = ::SetThreadStateEndCritical(kCurrentThreadID, kStoppedThreadState, m_owner);
             err = ::ThreadBeginCritical();
+            wxASSERT( err == noErr ) ;
         }
         m_owner = current;
     }
         }
         m_owner = current;
     }
@@ -165,6 +168,7 @@ wxMutexError wxMutexInternal::Unlock()
     {
         OSErr err;
         err = ::ThreadBeginCritical();
     {
         OSErr err;
         err = ::ThreadBeginCritical();
+        wxASSERT( err == noErr ) ;
 
         if (m_locked > 0)
             m_locked--;
 
         if (m_locked > 0)
             m_locked--;
@@ -446,11 +450,13 @@ bool wxThreadInternal::Suspend()
 {
     OSErr err ;
 
 {
     OSErr err ;
 
-    ::ThreadBeginCritical();
+    err = ::ThreadBeginCritical();
+    wxASSERT( err == noErr ) ;
 
     if ( m_state != STATE_RUNNING )
     {
 
     if ( m_state != STATE_RUNNING )
     {
-        ::ThreadEndCritical() ;
+        err = ::ThreadEndCritical() ;
+        wxASSERT( err == noErr ) ;
         wxLogSysError(_("Can not suspend thread %x"), m_tid);
         return FALSE;
     }
         wxLogSysError(_("Can not suspend thread %x"), m_tid);
         return FALSE;
     }
@@ -471,19 +477,22 @@ bool wxThreadInternal::Resume()
     wxASSERT( err == noErr ) ;
     wxASSERT( current != m_tid ) ;
 
     wxASSERT( err == noErr ) ;
     wxASSERT( current != m_tid ) ;
 
-    ::ThreadBeginCritical();
+    err = ::ThreadBeginCritical();
+    wxASSERT( err == noErr ) ;
+
     if ( m_state != STATE_PAUSED && m_state != STATE_NEW )
     {
     if ( m_state != STATE_PAUSED && m_state != STATE_NEW )
     {
-        ::ThreadEndCritical() ;
+        err = ::ThreadEndCritical() ;
+        wxASSERT( err == noErr ) ;
         wxLogSysError(_("Can not resume thread %x"), m_tid);
         return FALSE;
 
     }
     err = ::SetThreadStateEndCritical(m_tid, kReadyThreadState, kNoThreadID);
         wxLogSysError(_("Can not resume thread %x"), m_tid);
         return FALSE;
 
     }
     err = ::SetThreadStateEndCritical(m_tid, kReadyThreadState, kNoThreadID);
-    wxASSERT( err == noErr ) ;
 
     m_state = STATE_RUNNING;
 
     m_state = STATE_RUNNING;
-    ::ThreadEndCritical() ;
+    err = ::ThreadEndCritical() ;
+    wxASSERT( err == noErr ) ;
     ::YieldToAnyThread() ;
     return TRUE;
 }
     ::YieldToAnyThread() ;
     return TRUE;
 }