1. the common helper functions are now in src/unix/utilsunx.cpp

2. POSIX threads are in src/unix/threadpsx.cpp
3. some more functions are detected using configure and not  guessed from the
   platform type


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-03-06 00:11:27 +00:00
parent cf6c13a14f
commit 518b5d2ffb
15 changed files with 2152 additions and 1621 deletions

View File

@@ -8,8 +8,9 @@
// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "thread.h"
#pragma implementation "thread.h"
#endif
#include "wx/wx.h"
@@ -19,35 +20,35 @@
wxMutex::wxMutex()
{
m_locked = 0;
m_locked = 0;
}
wxMutex::~wxMutex()
{
if (m_locked)
wxLogDebug( "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 wxMUTEX_NO_ERROR;
m_locked++;
return wxMUTEX_NO_ERROR;
}
wxMutexError wxMutex::TryLock()
{
if (m_locked > 0)
return wxMUTEX_BUSY;
m_locked++;
return wxMUTEX_NO_ERROR;
if (m_locked > 0)
return wxMUTEX_BUSY;
m_locked++;
return wxMUTEX_NO_ERROR;
}
wxMutexError wxMutex::Unlock()
{
if (m_locked == 0)
return wxMUTEX_UNLOCKED;
m_locked--;
return wxMUTEX_NO_ERROR;
if (m_locked == 0)
return wxMUTEX_UNLOCKED;
m_locked--;
return wxMUTEX_NO_ERROR;
}
wxCondition::wxCondition()
@@ -63,9 +64,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()
@@ -76,31 +77,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 wxTHREAD_NO_ERROR;
p_internal->exit_status = Entry();
OnExit();
return wxTHREAD_NO_ERROR;
}
wxThreadError wxThread::Destroy()
{
return wxTHREAD_NOT_RUNNING;
return wxTHREAD_NOT_RUNNING;
}
wxThreadError wxThread::Pause()
{
return wxTHREAD_NOT_RUNNING;
return wxTHREAD_NOT_RUNNING;
}
wxThreadError wxThread::Resume()
{
return wxTHREAD_NOT_RUNNING;
return wxTHREAD_NOT_RUNNING;
}
void wxThread::DeferDestroy( bool WXUNUSED(on) )
@@ -113,27 +115,27 @@ 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)) { }
@@ -143,36 +145,35 @@ 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)
bool wxThreadModule::OnInit()
bool wxThreadModule::OnInit()
{
wxMainMutex = new wxMutex();
wxMainMutex->Lock();
return TRUE;
wxMainMutex = new wxMutex();
wxMainMutex->Lock();
return TRUE;
}
void wxThreadModule::OnExit()
{
wxMainMutex->Unlock();
delete wxMainMutex;
wxMainMutex->Unlock();
delete wxMainMutex;
}