I'm hoping somebody here can help me with an error I'm getting in Python 2.3.4 but not in Python 2.4.2 when I use PyGILState_Ensure in NumPy on Linux.
Perhaps somebody can point out what I'm doing wrong because while I've tried to understand the threading API it can be a bit confusing and maybe I'm doing it wrong. Right now, I've had to disable threading support in NumPy for Python 2.3 which is a bit annoying. The problem shows up when I've released the GIL using PyEval_SaveThread() in one section of code. Then the code calls functions that don't involve the Python C-API. Then another function sometimes requires use of the C-API to set a Python Error or issue a warning. So I call: _save = PyGILState_Ensure(); <Use Python C-API to issue an error or warning> Finally, before exiting this function PyGILState_Release(_save); is called. Later when control returns to the original caller that released the GIL, PyEval_RestoreThread() is called. But the segfault seems to be happening on the call to PyGILState_Release(_save); All of this works fine when it runs under Python 2.4.2, but under Python 2.3.4 I get a segfault. Does anybody have any ideas? Thanks very much. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com