wxThread POSIX implementation seems to work (under libc6 Linux at least)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1449 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-01-22 16:21:24 +00:00
parent 85d0541446
commit 7c3d7e2d77
4 changed files with 483 additions and 97 deletions

View File

@@ -105,14 +105,16 @@ class WXDLLEXPORT wxMutexLocker
{
public:
// lock the mutex in the ctor
wxMutexLocker(wxMutex *mutex)
{ m_isOk = mutex && ((m_mutex = mutex)->Lock() == wxMUTEX_NO_ERROR); }
wxMutexLocker(wxMutex& mutex) : m_mutex(mutex)
{ m_isOk = m_mutex.Lock() == wxMUTEX_NO_ERROR; }
// returns TRUE if mutex was successfully locked in ctor
bool IsOk() const { return m_isOk; }
bool IsOk() const
{ return m_isOk; }
// unlock the mutex in dtor
~wxMutexLocker() { if ( IsOk() ) m_mutex->Unlock(); }
~wxMutexLocker()
{ if ( IsOk() ) m_mutex.Unlock(); }
private:
// no assignment operator nor copy ctor
@@ -120,7 +122,7 @@ private:
wxMutexLocker& operator=(const wxMutexLocker&);
bool m_isOk;
wxMutex *m_mutex;
wxMutex& m_mutex;
};
// ----------------------------------------------------------------------------