X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3069ac4e452f98644f9cdcae52a36ed9b9a93a31..caa2490c0fb8053b1d416117a9619695d75af9e4:/src/gtk1/threadsgi.cpp diff --git a/src/gtk1/threadsgi.cpp b/src/gtk1/threadsgi.cpp index 556d032152..b869e4ed4c 100644 --- a/src/gtk1/threadsgi.cpp +++ b/src/gtk1/threadsgi.cpp @@ -8,22 +8,29 @@ // Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "thread.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#include "wx/thread.h" #include #include #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, @@ -66,24 +73,24 @@ wxMutexError wxMutex::Lock() { spin_lock(&(p_internal->p_mutex)); m_locked++; - return MUTEX_NO_ERROR; + return wxMUTEX_NO_ERROR; } wxMutexError wxMutex::TryLock() { if (acquire_lock(&(p_internal->p_mutex)) != 0) - return MUTEX_BUSY; + return wxMUTEX_BUSY; m_locked++; - return MUTEX_NO_ERROR; + return wxMUTEX_NO_ERROR; } wxMutexError wxMutex::Unlock() { if (m_locked == 0) - return MUTEX_UNLOCKED; + return wxMUTEX_UNLOCKED; release_lock(&(p_internal->p_mutex)); m_locked--; - return MUTEX_NO_ERROR; + return wxMUTEX_NO_ERROR; } // GL: Don't know how it works on SGI. Wolfram ? @@ -132,13 +139,13 @@ void wxThread::Exit(void* status) wxThreadError wxThread::Create() { if (p_internal->state != STATE_IDLE) - return THREAD_RUNNING; + return wxTHREAD_RUNNING; p_internal->state = STATE_RUNNING; if (sproc(p_internal->SprocStart, PR_SALL, this) < 0) { p_internal->state = STATE_IDLE; - return THREAD_NO_RESOURCE; + return wxTHREAD_NO_RESOURCE; } - return THREAD_NO_ERROR; + return wxTHREAD_NO_ERROR; } wxThreadError wxThread::Destroy() @@ -146,17 +153,17 @@ wxThreadError wxThread::Destroy() if (p_internal->state == STATE_RUNNING) p_internal->state = STATE_CANCELED; - return THREAD_NO_ERROR; + return wxTHREAD_NO_ERROR; } wxThreadError wxThread::Pause() { - return THREAD_NO_ERROR; + return wxTHREAD_NO_ERROR; } wxThreadError wxThread::Resume() { - return THREAD_NO_ERROR; + return wxTHREAD_NO_ERROR; } void *wxThread::Join() @@ -234,21 +241,32 @@ 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)