// Author: Original from Wolfram Gloger/Guilhem Lavaux/David Webster
// Modified by: Stefan Neis
// Created: 04/22/98
-// RCS-ID: $Id$
// Copyright: (c) Stefan Neis (2003)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
APIRET ulrc = ::DosCreateMutexSem(NULL, &m_vMutex, 0L, FALSE);
if (ulrc != 0)
{
- wxLogSysError(_("Can not create mutex."));
+ wxLogSysError(_("Cannot create mutex."));
m_vMutex = NULL;
}
}
{
m_hThread = 0;
m_eState = STATE_NEW;
- m_nPriority = WXTHREAD_DEFAULT_PRIORITY;
+ m_nPriority = wxPRIORITY_DEFAULT;
}
~wxThreadInternal()
return false;
}
m_hThread = tid;
- if (m_nPriority != WXTHREAD_DEFAULT_PRIORITY)
+ if (m_nPriority != wxPRIORITY_DEFAULT)
{
SetPriority(m_nPriority);
}
if (ulrc != 0)
{
- wxLogSysError(_("Can not suspend thread %lu"), m_hThread);
+ wxLogSysError(_("Cannot suspend thread %lu"), m_hThread);
return false;
}
m_eState = STATE_PAUSED;
if (ulrc != 0)
{
- wxLogSysError(_("Can not resume thread %lu"), m_hThread);
+ wxLogSysError(_("Cannot resume thread %lu"), m_hThread);
return false;
}
{
wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect);
+ // Create the thread if it wasn't created yet with an explicit
+ // Create() call:
+ if ( !m_internal->GetHandle() )
+ {
+ if ( !m_internal->Create(this, 0) )
+ return wxTHREAD_NO_RESOURCE;
+ }
+
if ( m_internal->GetState() != STATE_NEW )
{
// actually, it may be almost any state at all, not only STATE_RUNNING
// stopping thread
// ---------------
-wxThread::ExitCode wxThread::Wait()
+wxThread::ExitCode wxThread::Wait(wxThreadWait waitMode)
{
// although under Windows we can wait for any thread, it's an error to
// wait for a detached one in wxWin API
wxCHECK_MSG( !IsDetached(), (ExitCode)-1,
wxT("can't wait for detached thread") );
ExitCode rc = (ExitCode)-1;
- (void)Delete(&rc);
+ (void)Delete(&rc, waitMode);
return(rc);
}
-wxThreadError wxThread::Delete(ExitCode *pRc)
+wxThreadError wxThread::Delete(ExitCode *pRc, wxThreadWait WXUNUSED(waitMode))
{
ExitCode rc = 0;