]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't use the PyGILState_* APIs with Python 2.3, it causes a problem
authorRobin Dunn <robin@alldunn.com>
Sat, 12 Mar 2005 21:03:18 +0000 (21:03 +0000)
committerRobin Dunn <robin@alldunn.com>
Sat, 12 Mar 2005 21:03:18 +0000 (21:03 +0000)
with Boa's debugger.  :-(

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/include/wx/wxPython/wxPython_int.h
wxPython/src/helpers.cpp

index f4afefcb7f9a1e6250aaaaf7105b4842d4392b2b..b91f3e7317256aef735cb8b4f28cc0274f7bd17f 100644 (file)
@@ -141,8 +141,15 @@ bool wxPySwigInstance_Check(PyObject* obj);
 // blocking threads when calling back into Python. Using them instead of my
 // home-grown hacks greatly simplifies wxPyBeginBlockThreads and
 // wxPyEndBlockThreads.
-
-#if PY_VERSION_HEX < 0x02030000
+//
+// Unfortunatly there is a bug somewhere when using these new APIs on Python
+// 2.3.  It manifests in Boa Constructor's debugger where it is unable to stop
+// at breakpoints located in event handlers.  I think that the cause may be
+// something like the original PyThreadState for the main thread is not being
+// restored for the callbacks, but I can't see where that could be
+// happening...  So we'll only activate this new change for Python 2.4+  :-(
+
+#if PY_VERSION_HEX < 0x02040000
 #define wxPyUSE_GIL_STATE 0
 typedef bool wxPyBlock_t;
 #else
index 9b7e3efb6d2ef738a5fc20f9e718f5dc58cb70ab..2a568e3e3852305a91f7237e371de02c15f6473a 100644 (file)
@@ -544,8 +544,10 @@ void __wxPyPreStart(PyObject* moduleDict)
 #endif
 
 #ifdef WXP_WITH_THREAD
+#if wxPyUSE_GIL_STATE
+    PyEval_InitThreads();
+#else
     PyEval_InitThreads();
-#if !wxPyUSE_GIL_STATE
     wxPyTStates = new wxPyThreadStateArray;
     wxPyTMutex = new wxMutex;