X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/90e95e61175953284a40c73f1d62ccc18ef4c748..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/msw/thread.cpp diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp index 0fee1a39e9..c829a6f911 100644 --- a/src/msw/thread.cpp +++ b/src/msw/thread.cpp @@ -905,7 +905,8 @@ bool wxThreadInternal::Suspend() DWORD nSuspendCount = ::SuspendThread(m_hThread); if ( nSuspendCount == (DWORD)-1 ) { - wxLogSysError(_("Cannot suspend thread %x"), m_hThread); + wxLogSysError(_("Cannot suspend thread %lx"), + static_cast(wxPtrToUInt(m_hThread))); return false; } @@ -920,7 +921,8 @@ bool wxThreadInternal::Resume() DWORD nSuspendCount = ::ResumeThread(m_hThread); if ( nSuspendCount == (DWORD)-1 ) { - wxLogSysError(_("Cannot resume thread %x"), m_hThread); + wxLogSysError(_("Cannot resume thread %lx"), + static_cast(wxPtrToUInt(m_hThread))); return false; } @@ -1105,6 +1107,14 @@ wxThreadError wxThread::Run() { 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()") );