wxMutex::~wxMutex()
{
if (m_locked > 0)
- wxLogDebug("Warning: freeing a locked mutex (%d locks).", m_locked);
+ wxLogDebug(wxT("Warning: freeing a locked mutex (%d locks)."), m_locked);
CloseHandle(p_internal->p_mutex);
}
case WAIT_TIMEOUT:
default:
- wxFAIL_MSG("impossible return value in wxMutex::Lock");
+ wxFAIL_MSG(wxT("impossible return value in wxMutex::Lock"));
}
m_locked++;
win_priority = THREAD_PRIORITY_HIGHEST;
else
{
- wxFAIL_MSG("invalid value of thread priority parameter");
+ wxFAIL_MSG(wxT("invalid value of thread priority parameter"));
win_priority = THREAD_PRIORITY_NORMAL;
}
return ::GetCurrentThreadId() == s_idMainThread;
}
+#ifdef Yield
+ #undef Yield
+#endif
+
void wxThread::Yield()
{
// 0 argument to Sleep() is special
break;
default:
- wxFAIL_MSG("unexpected result of MsgWaitForMultipleObject");
+ wxFAIL_MSG(wxT("unexpected result of MsgWaitForMultipleObject"));
}
} while ( result != WAIT_OBJECT_0 );
}
wxASSERT_MSG( (LPVOID)rc != (LPVOID)STILL_ACTIVE,
- "thread must be already terminated." );
+ wxT("thread must be already terminated.") );
::CloseHandle(hThread);
}
::ExitThread((DWORD)status);
- wxFAIL_MSG("Couldn't return from ExitThread()!");
+ wxFAIL_MSG(wxT("Couldn't return from ExitThread()!"));
}
void wxThread::SetPriority(unsigned int prio)
(p_internal->GetState() == STATE_PAUSED);
}
+bool wxThread::IsPaused() const
+{
+ wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect);
+
+ return (p_internal->GetState() == STATE_PAUSED);
+}
+
bool wxThread::TestDestroy()
{
wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect);
{
// this would dead lock everything...
wxASSERT_MSG( !wxThread::IsMain(),
- "main thread doesn't want to block in wxMutexGuiEnter()!" );
+ wxT("main thread doesn't want to block in wxMutexGuiEnter()!") );
// the order in which we enter the critical sections here is crucial!!
{
// decrement the number of waiters now
wxASSERT_MSG( s_nWaitingForGui > 0,
- "calling wxMutexGuiLeave() without entering it first?" );
+ wxT("calling wxMutexGuiLeave() without entering it first?") );
s_nWaitingForGui--;
void WXDLLEXPORT wxMutexGuiLeaveOrEnter()
{
wxASSERT_MSG( wxThread::IsMain(),
- "only main thread may call wxMutexGuiLeaveOrEnter()!" );
+ wxT("only main thread may call wxMutexGuiLeaveOrEnter()!") );
wxCriticalSectionLocker enter(*s_critsectWaitingForGui);