]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/threadno.cpp
Dialog Editor corrections for latest wxWin changes; removed wxProp files
[wxWidgets.git] / src / gtk / threadno.cpp
index 126a211fcacb3b039b2daf085deea32541b04664..ee844fbf0f8a33418bc01b6489da252fdbd31429 100644 (file)
@@ -13,6 +13,9 @@
 #endif
 
 #include "wx/wx.h"
+#include "wx/module.h"
+#include "wx/thread.h"
+#include "wx/log.h"
 
 wxMutex::wxMutex()
 {
@@ -22,16 +25,16 @@ wxMutex::wxMutex()
 wxMutex::~wxMutex()
 {
   if (m_locked)
-    wxDebugMsg("wxMutex warning: destroying a locked mutex (%d locks)\n", m_locked);
+    wxLogDebug( "wxMutex warning: destroying a locked mutex (%d locks)\n", m_locked );
 }
 
-MutexError wxMutex::Lock()
+wxMutexError wxMutex::Lock()
 {
   m_locked++;
   return MUTEX_NO_ERROR;
 }
 
-MutexError wxMutex::TryLock()
+wxMutexError wxMutex::TryLock()
 {
   if (m_locked > 0)
     return MUTEX_BUSY;
@@ -39,7 +42,7 @@ MutexError wxMutex::TryLock()
   return MUTEX_NO_ERROR;
 }
 
-MutexError wxMutex::Unlock()
+wxMutexError wxMutex::Unlock()
 {
   if (m_locked == 0)
     return MUTEX_UNLOCKED;
@@ -73,24 +76,34 @@ void wxCondition::Broadcast()
 {
 }
 
-struct wxThreadPrivate {
+struct wxThreadInternal {
        int thread_id;
        void* exit_status;
 };
 
-ThreadError wxThread::Create()
+wxThreadError wxThread::Create()
 {
   p_internal->exit_status = Entry();
   OnExit();
   return THREAD_NO_ERROR;
 }
 
-ThreadError wxThread::Destroy()
+wxThreadError wxThread::Destroy()
 {
-  return THREAD_RUNNING;
+  return THREAD_NOT_RUNNING;
 }
 
-void wxThread::DeferDestroy()
+wxThreadError wxThread::Pause()
+{
+  return THREAD_NOT_RUNNING;
+}
+
+wxThreadError wxThread::Resume()
+{
+  return THREAD_NOT_RUNNING;
+}
+
+void wxThread::DeferDestroy( bool WXUNUSED(on) )
 {
 }
 
@@ -113,24 +126,29 @@ bool wxThread::IsMain()
   return TRUE;
 }
 
+bool wxThread::IsRunning() const
+{
+  return FALSE;
+}
+
 bool wxThread::IsAlive() const
 {
   return FALSE;
 }
 
 void wxThread::SetPriority(int WXUNUSED(prio)) { }
-int wxThread::GetPriority() const { }
+int wxThread::GetPriority() const { return 0; }
 
-wxMutex wxMainMutex; // controls access to all GUI functions
+wxMutex *wxMainMutex; // controls access to all GUI functions
 
 wxThread::wxThread()
 {
-  p_internal = new wxThreadPrivate();
+  p_internal = new wxThreadInternal();
 }
 
 wxThread::~wxThread()
 {
-  Cancel();
+  Destroy();
   Join();
   delete p_internal;
 }
@@ -151,13 +169,15 @@ public:
 };
 
 bool wxThreadModule::OnInit() {
-  wxMainMutex.Lock();
+  wxMainMutex = new wxMutex();
+  wxMainMutex->Lock();
   return TRUE;
 }
 
-void wxThreadModule::wxThreadExit()
+void wxThreadModule::OnExit()
 {
-  wxMainMutex.Unlock();
+  wxMainMutex->Unlock();
+  delete wxMainMutex;
 }
 
 IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)