Ensure that Python is initialized before doing any locking in
wxPyBeginBlockThreads and wxPyEndBlockThreads as these can be triggered after Python has been finalized in embedding situations. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1167,6 +1167,9 @@ void wxPyEndAllowThreads(PyThreadState* saved) {
|
|||||||
|
|
||||||
wxPyBlock_t wxPyBeginBlockThreads() {
|
wxPyBlock_t wxPyBeginBlockThreads() {
|
||||||
#ifdef WXP_WITH_THREAD
|
#ifdef WXP_WITH_THREAD
|
||||||
|
if (! Py_IsInitialized()) {
|
||||||
|
return (wxPyBlock_t)0;
|
||||||
|
}
|
||||||
#if wxPyUSE_GIL_STATE
|
#if wxPyUSE_GIL_STATE
|
||||||
PyGILState_STATE state = PyGILState_Ensure();
|
PyGILState_STATE state = PyGILState_Ensure();
|
||||||
return state;
|
return state;
|
||||||
@@ -1192,6 +1195,9 @@ wxPyBlock_t wxPyBeginBlockThreads() {
|
|||||||
|
|
||||||
void wxPyEndBlockThreads(wxPyBlock_t blocked) {
|
void wxPyEndBlockThreads(wxPyBlock_t blocked) {
|
||||||
#ifdef WXP_WITH_THREAD
|
#ifdef WXP_WITH_THREAD
|
||||||
|
if (! Py_IsInitialized()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
#if wxPyUSE_GIL_STATE
|
#if wxPyUSE_GIL_STATE
|
||||||
PyGILState_Release(blocked);
|
PyGILState_Release(blocked);
|
||||||
#else
|
#else
|
||||||
|
Reference in New Issue
Block a user