X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2dd8380badebac8dc01f8948288235ae91056ed..ce7208d49d5ce2ca1dc0b3b83f14f1d04f29c4bf:/src/gtk1/threadno.cpp?ds=sidebyside diff --git a/src/gtk1/threadno.cpp b/src/gtk1/threadno.cpp index 3a1f3460c7..a4bcf8a517 100644 --- a/src/gtk1/threadno.cpp +++ b/src/gtk1/threadno.cpp @@ -1,52 +1,56 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: No thread support -// Author: Original from Wolfram Gloger/Guilhem Lavaux +// Name: src/gtk1/threadno.cpp +// Purpose: Solaris thread support +// Author: Guilhem Lavaux // Modified by: // Created: 04/22/98 // RCS-ID: $Id$ // Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif -#include "wx/wx.h" -#include "wx/module.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #include "wx/thread.h" +#ifndef WX_PRECOMP + #include "wx/wx.h" + #include "wx/log.h" + #include "wx/module.h" +#endif + wxMutex::wxMutex() { - m_locked = 0; + m_locked = 0; } wxMutex::~wxMutex() { - if (m_locked) - wxDebugMsg("wxMutex warning: destroying a locked mutex (%d locks)\n", m_locked); + if (m_locked) + wxLogDebug( "wxMutex warning: destroying a locked mutex (%d locks)", m_locked ); } wxMutexError wxMutex::Lock() { - m_locked++; - return MUTEX_NO_ERROR; + m_locked++; + return wxMUTEX_NO_ERROR; } wxMutexError wxMutex::TryLock() { - if (m_locked > 0) - return MUTEX_BUSY; - m_locked++; - return MUTEX_NO_ERROR; + if (m_locked > 0) + return wxMUTEX_BUSY; + m_locked++; + return wxMUTEX_NO_ERROR; } wxMutexError wxMutex::Unlock() { - if (m_locked == 0) - return MUTEX_UNLOCKED; - m_locked--; - return MUTEX_NO_ERROR; + if (m_locked == 0) + return wxMUTEX_UNLOCKED; + m_locked--; + return wxMUTEX_NO_ERROR; } wxCondition::wxCondition() @@ -62,9 +66,9 @@ void wxCondition::Wait(wxMutex& WXUNUSED(mutex)) } bool wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) + unsigned long WXUNUSED(nsec)) { - return FALSE; + return false; } void wxCondition::Signal() @@ -75,31 +79,32 @@ void wxCondition::Broadcast() { } -struct wxThreadInternal { - int thread_id; - void* exit_status; +struct wxThreadInternal +{ + int thread_id; + void* exit_status; }; wxThreadError wxThread::Create() { - p_internal->exit_status = Entry(); - OnExit(); - return THREAD_NO_ERROR; + p_internal->exit_status = Entry(); + OnExit(); + return wxTHREAD_NO_ERROR; } wxThreadError wxThread::Destroy() { - return THREAD_NOT_RUNNING; + return wxTHREAD_NOT_RUNNING; } wxThreadError wxThread::Pause() { - return THREAD_NOT_RUNNING; + return wxTHREAD_NOT_RUNNING; } wxThreadError wxThread::Resume() { - return THREAD_NOT_RUNNING; + return wxTHREAD_NOT_RUNNING; } void wxThread::DeferDestroy( bool WXUNUSED(on) ) @@ -112,69 +117,73 @@ void wxThread::TestDestroy() void *wxThread::Join() { - return p_internal->exit_status; + return p_internal->exit_status; } unsigned long wxThread::GetID() const { - return 0; + return 0; } bool wxThread::IsMain() { - return TRUE; + return true; } bool wxThread::IsRunning() const { - return FALSE; + return false; } bool wxThread::IsAlive() const { - return FALSE; + return false; } void wxThread::SetPriority(int WXUNUSED(prio)) { } 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 wxThreadInternal(); + p_internal = new wxThreadInternal(); } wxThread::~wxThread() { - Destroy(); - Join(); - delete p_internal; + Destroy(); + Join(); + delete p_internal; } // The default callback just joins the thread and throws away the result. void wxThread::OnExit() { - Join(); + Join(); } +IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - bool OnInit(); - void OnExit(); -}; - -bool wxThreadModule::OnInit() { - wxMainMutex.Lock(); - return TRUE; +bool wxThreadModule::OnInit() +{ + wxMainMutex = new wxMutex(); + wxMainMutex->Lock(); + return true; } void wxThreadModule::OnExit() { - wxMainMutex.Unlock(); + wxMainMutex->Unlock(); + delete wxMainMutex; } -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) + + +void wxMutexGuiEnter() +{ +} + +void wxMutexGuiLeave() +{ +}