Backport my recent fix (rev. 2.40 of Python/pystate.c):

Fix:

[ 1176893 ] Readline segfault

by unsilly-ing PyGILState_Release().

Backport candidate.
This commit is contained in:
Michael W. Hudson
2005-04-24 19:32:34 +00:00
parent 4d3fec604d
commit 14ef205309
2 changed files with 7 additions and 1 deletions

View File

@@ -12,6 +12,12 @@ What's New in Python 2.4.2a
Core and builtins
-----------------
- It is now safe to call PyGILState_Release() before
PyEval_InitThreads() (note that if there is reason to believe there
are multiple threads around you still must call PyEval_InitThreads()
before using the Python API; this fix is for extension modules that
have no way of knowing if Python is multi-threaded yet).
- Typing Ctrl-C whilst raw_input() was waiting in a build with threads
disabled caused a crash.

View File

@@ -503,6 +503,6 @@ PyGILState_Release(PyGILState_STATE oldstate)
}
/* Release the lock if necessary */
else if (oldstate == PyGILState_UNLOCKED)
PyEval_ReleaseThread(tcur);
PyEval_SaveThread();
}
#endif /* WITH_THREAD */