#endif
#include "wx/wx.h"
+#include "wx/module.h"
+#include "wx/thread.h"
wxMutex::wxMutex()
{
wxDebugMsg("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;
return MUTEX_NO_ERROR;
}
-MutexError wxMutex::Unlock()
+wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
return MUTEX_UNLOCKED;
{
}
-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) )
{
}
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;
}
};
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)