// Author: Original from Wolfram Gloger/Guilhem Lavaux
// Modified by: Vadim Zeitlin to make it work :-)
// Created: 04/22/98
-// RCS-ID: $Id$
// Copyright: (c) Wolfram Gloger (1996, 1997), Guilhem Lavaux (1998);
// Vadim Zeitlin (1999-2002)
// Licence: wxWindows licence
m_thread = thread;
m_hThread = 0;
m_state = STATE_NEW;
- m_priority = WXTHREAD_DEFAULT_PRIORITY;
+ m_priority = wxPRIORITY_DEFAULT;
m_nRef = 1;
}
return THREAD_ERROR_EXIT;
}
- rc = wxPtrToUInt(thread->Entry());
+ rc = wxPtrToUInt(thread->CallEntry());
}
wxCATCH_ALL( wxTheApp->OnUnhandledException(); )
return false;
}
- if ( m_priority != WXTHREAD_DEFAULT_PRIORITY )
+ if ( m_priority != wxPRIORITY_DEFAULT )
{
SetPriority(m_priority);
}
DWORD nSuspendCount = ::SuspendThread(m_hThread);
if ( nSuspendCount == (DWORD)-1 )
{
- wxLogSysError(_("Cannot suspend thread %x"), m_hThread);
+ wxLogSysError(_("Cannot suspend thread %lx"),
+ static_cast<unsigned long>(wxPtrToUInt(m_hThread)));
return false;
}
DWORD nSuspendCount = ::ResumeThread(m_hThread);
if ( nSuspendCount == (DWORD)-1 )
{
- wxLogSysError(_("Cannot resume thread %x"), m_hThread);
+ wxLogSysError(_("Cannot resume thread %lx"),
+ static_cast<unsigned long>(wxPtrToUInt(m_hThread)));
return false;
}
{
wxCriticalSectionLocker lock(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;
+ }
+
wxCHECK_MSG( m_internal->GetState() == STATE_NEW, wxTHREAD_RUNNING,
wxT("thread may only be started once after Create()") );