/////////////////////////////////////////////////////////////////////////////
// Name: thread.cpp
-// Purpose: No thread support
-// Author: Original from Wolfram Gloger/Guilhem Lavaux
+// Purpose: Solaris thread support
+// Author: Guilhem Lavaux
// Modified by:
// Created: 04/22/98
// RCS-ID: $Id$
#include "wx/wx.h"
#include "wx/module.h"
#include "wx/thread.h"
+#include "wx/log.h"
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 );
}
wxMutexError wxMutex::Lock()
{
m_locked++;
- return MUTEX_NO_ERROR;
+ return wxMUTEX_NO_ERROR;
}
wxMutexError wxMutex::TryLock()
{
if (m_locked > 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;
m_locked--;
- return MUTEX_NO_ERROR;
+ return wxMUTEX_NO_ERROR;
}
wxCondition::wxCondition()
{
p_internal->exit_status = Entry();
OnExit();
- return THREAD_NO_ERROR;
+ 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) )
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()
{
}
-// Automatic initialization
-class wxThreadModule : public wxModule {
- DECLARE_DYNAMIC_CLASS(wxThreadModule)
-public:
- bool OnInit();
- void OnExit();
-};
+IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule)
-bool wxThreadModule::OnInit() {
- wxMainMutex.Lock();
+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()
+{
+}