X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/293a0a8677c1ea28e42d4a97c3ec9c2a757d1c0c..cb7acf9cc78c309026bed1038631f2663cd90bda:/wxPython/src/helpers.cpp?ds=inline diff --git a/wxPython/src/helpers.cpp b/wxPython/src/helpers.cpp index 6a196331a3..340c740037 100644 --- a/wxPython/src/helpers.cpp +++ b/wxPython/src/helpers.cpp @@ -223,11 +223,13 @@ PyObject* __wxStart(PyObject* /* self */, PyObject* args) void __wxCleanup() { wxEntryCleanup(); +#ifdef WXP_WITH_THREAD delete wxPyTMutex; wxPyTMutex = NULL; wxPyTStates->Empty(); delete wxPyTStates; wxPyTStates = NULL; +#endif } @@ -254,8 +256,8 @@ PyObject* __wxSetDictionary(PyObject* /* self */, PyObject* args) #ifdef __WXMOTIF__ #define wxPlatform "__WXMOTIF__" #endif -#ifdef __WXQT__ -#define wxPlatform "__WXQT__" +#ifdef __WXX11__ +#define wxPlatform "__WXX11__" #endif #ifdef __WXGTK__ #define wxPlatform "__WXGTK__" @@ -448,9 +450,12 @@ unsigned long wxPyGetCurrentThreadId() { return wxThread::GetCurrentId(); } - +static PyThreadState* gs_shutdownTState; static PyThreadState* wxPyGetThreadState() { + if (wxPyTMutex == NULL) // Python is shutting down... + return gs_shutdownTState; + unsigned long ctid = wxPyGetCurrentThreadId(); PyThreadState* tstate = NULL; @@ -469,6 +474,10 @@ PyThreadState* wxPyGetThreadState() { static void wxPySaveThreadState(PyThreadState* tstate) { + if (wxPyTMutex == NULL) { // Python is shutting down, assume a single thread... + gs_shutdownTState = tstate; + return; + } unsigned long ctid = wxPyGetCurrentThreadId(); wxPyTMutex->Lock(); for(size_t i=0; i < wxPyTStates->GetCount(); i++) {