Don't use the PyGILState_* APIs with Python 2.3, it causes a problem

with Boa's debugger.  :-(


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2005-03-12 21:03:18 +00:00
parent 85ee4fe906
commit 822e03eeff
2 changed files with 11 additions and 2 deletions

View 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.
//
// 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 < 0x02030000
#if PY_VERSION_HEX < 0x02040000
#define wxPyUSE_GIL_STATE 0
typedef bool wxPyBlock_t;
#else

View 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;