X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d5fc46616d002ac850c00f4917427f0bb8f4d43c..8290d43d0d43369d007f1c47abf98a45da461a30:/src/unix/threadpsx.cpp diff --git a/src/unix/threadpsx.cpp b/src/unix/threadpsx.cpp index 5bbb54a778..c9915fa3b4 100644 --- a/src/unix/threadpsx.cpp +++ b/src/unix/threadpsx.cpp @@ -135,7 +135,7 @@ static pthread_key_t gs_keySelf; static size_t gs_nThreadsBeingDeleted = 0; // a mutex to protect gs_nThreadsBeingDeleted -static pthread_mutex_t gs_mutexDeleteThread = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t gs_mutexDeleteThread; // and a condition variable which will be signaled when all // gs_nThreadsBeingDeleted will have been deleted @@ -835,7 +835,9 @@ bool wxThread::IsMain() void wxThread::Yield() { +#ifdef HAVE_SCHED_YIELD sched_yield(); +#endif } void wxThread::Sleep(unsigned long milliseconds) @@ -1449,6 +1451,10 @@ bool wxThreadModule::OnInit() gs_mutexGui->Lock(); #endif // wxUSE_GUI + // under Solaris we get a warning from CC when using + // PTHREAD_MUTEX_INITIALIZER, so do it dynamically + pthread_mutex_init(&gs_mutexDeleteThread, NULL); + return TRUE; }