]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/thread.cpp
textctrl.cpp: Removed assert from CanRedo/CanUndo since the best behaviour is
[wxWidgets.git] / src / mac / thread.cpp
index e59ca72ebeafcb49ebad5653f7408851acbf8c91..75db6e539e8c3ca261f1199b7d4e6adee95736bc 100644 (file)
@@ -146,7 +146,6 @@ wxMutexError wxMutex::TryLock()
     wxMacStCritical critical ;
     if ( UMASystemIsInitialized() )
     {
-        OSErr err ;
         ThreadID current = kNoThreadID;
         ::MacGetCurrentThread(&current);
         // if we are not the owner, give an error back
@@ -205,7 +204,7 @@ wxMutexError wxMutex::Unlock()
 class wxConditionInternal
 {
 public:
-    wxConditionInternal()
+    wxConditionInternal(wxMutex& mutex) : m_mutex(mutex)
     {
         m_excessSignals = 0 ;
     }
@@ -247,11 +246,12 @@ public:
 
     wxArrayLong m_waiters ;
     wxInt32     m_excessSignals ;
+    wxMutex&    m_mutex;
 };
 
-wxCondition::wxCondition()
+wxCondition::wxCondition(wxMutex& mutex)
 {
-    m_internal = new wxConditionInternal;
+    m_internal = new wxConditionInternal(mutex);
 }
 
 wxCondition::~wxCondition()
@@ -264,10 +264,9 @@ void wxCondition::Wait()
     (void)m_internal->Wait(0xFFFFFFFFL);
 }
 
-bool wxCondition::Wait(unsigned long sec,
-                       unsigned long nsec)
+bool wxCondition::Wait(unsigned long timeout_millis)
 {
-    return m_internal->Wait(sec*1000 + nsec/1000000);
+    return m_internal->Wait(timeout_millis);
 }
 
 void wxCondition::Signal()
@@ -285,7 +284,7 @@ void wxCondition::Broadcast()
     // this works because all these threads are already waiting and so each
     // SetEvent() inside Signal() is really a PulseEvent() because the event
     // state is immediately returned to non-signaled
-    for ( int i = 0; i < m_internal->m_waiters.Count(); i++ )
+    for ( size_t i = 0; i < m_internal->m_waiters.Count(); i++ )
     {
         Signal();
     }
@@ -477,7 +476,7 @@ wxThread *wxThread::This()
 
     err = MacGetCurrentThread( &current ) ;
 
-    for ( int i = 0 ; i < s_threads.Count() ; ++i )
+    for ( size_t i = 0 ; i < s_threads.Count() ; ++i )
     {
         if ( ( (wxThread*) s_threads[i] )->GetId() == current )
             return (wxThread*) s_threads[i] ;