X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cffee23b4fb7e2843d39318d2e20758a105b26bf..3225a4b8b8656f25dac6cb20684a3c2c273cf796:/src/gtk1/threadsgi.cpp?ds=sidebyside diff --git a/src/gtk1/threadsgi.cpp b/src/gtk1/threadsgi.cpp index 8dcac37000..6ba3e7255c 100644 --- a/src/gtk1/threadsgi.cpp +++ b/src/gtk1/threadsgi.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: threadsgi.cpp +// Name: src/gtk1/threadsgi.cpp // Purpose: wxThread (SGI) Implementation // Author: Original from Wolfram Gloger/Guilhem Lavaux // Modified by: @@ -8,8 +8,16 @@ // Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#include "wx/thread.h" + +#ifndef WX_PRECOMP + #include "wx/log.h" + #include "wx/utils.h" + #include "wx/module.h" #endif #include @@ -18,12 +26,12 @@ #include #include #include -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" -#include "wx/log.h" -enum thread_state { +#include "gdk/gdk.h" +#include "gtk/gtk.h" + +enum thread_state +{ STATE_IDLE = 0, STATE_RUNNING, STATE_CANCELED, @@ -58,7 +66,9 @@ wxMutex::wxMutex() wxMutex::~wxMutex() { if (m_locked > 0) + { wxLogDebug( "wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked ); + } delete p_internal; } @@ -80,7 +90,7 @@ wxMutexError wxMutex::TryLock() wxMutexError wxMutex::Unlock() { if (m_locked == 0) - return wxMUTEX_UNLOCKED; + return wxMUTEX_UNLOCKED; release_lock(&(p_internal->p_mutex)); m_locked--; return wxMUTEX_NO_ERROR; @@ -234,21 +244,31 @@ void wxThread::OnExit() } // Global initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) + +class wxThreadModule : public wxModule +{ public: - virtual bool OnInit() { + virtual bool OnInit(); + virtual void OnExit(); + +private: + DECLARE_DYNAMIC_CLASS(wxThreadModule) +}; + +IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) + +bool wxThreadModule::OnInit() +{ wxMainMutex = new wxMutex(); wxThreadGuiInit(); p_mainid = (int)getpid(); wxMainMutex->Lock(); - } + return true; +} - virtual void OnExit() { +void wxThreadModule::OnExit() +{ wxMainMutex->Unlock(); wxThreadGuiExit(); delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) +}