From: Robin Dunn Date: Tue, 18 May 2004 19:59:18 +0000 (+0000) Subject: If the threads module hasn't been initialized yet then we can assume X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5b65f1364d1a643940ddd31fbd77578ff6e20639 If the threads module hasn't been initialized yet then we can assume the IsMain == true. This allows wxASSERTs that happen before the wxApp is created (as can easily happen in wxPython unfortunatly) to behave normally instead of just calling wxTrap. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27344 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/thread.cpp b/src/mac/carbon/thread.cpp index 289a8fa35e..c5ba83d648 100644 --- a/src/mac/carbon/thread.cpp +++ b/src/mac/carbon/thread.cpp @@ -1197,7 +1197,7 @@ wxThread *wxThread::This() bool wxThread::IsMain() { - return GetCurrentId() == gs_idMainThread; + return GetCurrentId() == gs_idMainThread || gs_idMainThread == kNoThreadID; } #ifdef Yield diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp index 469ced786b..d50ea43a36 100644 --- a/src/msw/thread.cpp +++ b/src/msw/thread.cpp @@ -863,7 +863,7 @@ wxThread *wxThread::This() bool wxThread::IsMain() { - return ::GetCurrentThreadId() == gs_idMainThread; + return ::GetCurrentThreadId() == gs_idMainThread || gs_idMainThread == 0; } void wxThread::Yield() diff --git a/src/unix/threadpsx.cpp b/src/unix/threadpsx.cpp index ae471b8d6b..429b2a292c 100644 --- a/src/unix/threadpsx.cpp +++ b/src/unix/threadpsx.cpp @@ -113,7 +113,7 @@ WX_DEFINE_ARRAY(wxThread *, wxArrayThread); static wxArrayThread gs_allThreads; // the id of the main thread -static pthread_t gs_tidMain; +static pthread_t gs_tidMain = (pthread_t)-1; // the key for the pointer to the associated wxThread object static pthread_key_t gs_keySelf; @@ -957,7 +957,7 @@ wxThread *wxThread::This() bool wxThread::IsMain() { - return (bool)pthread_equal(pthread_self(), gs_tidMain); + return (bool)pthread_equal(pthread_self(), gs_tidMain) || gs_tidMain == (pthread_t)-1; } void wxThread::Yield()