aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael W. Hudson <mwh@python.net>2005-04-18 08:46:17 +0000
committerMichael W. Hudson <mwh@python.net>2005-04-18 08:46:17 +0000
commit774479c68bf6953e89996c24287199d3f3331ba3 (patch)
tree064874935cc0f155b9f9acf6fca76de0e3177a04
parentUpdated to work with current Python docs setup, and added a minimal README. (diff)
downloadcpython-774479c68bf6953e89996c24287199d3f3331ba3.tar.gz
cpython-774479c68bf6953e89996c24287199d3f3331ba3.tar.bz2
cpython-774479c68bf6953e89996c24287199d3f3331ba3.zip
Fix:
[ 1176893 ] Readline segfault by unsilly-ing PyGILState_Release(). Backport candidate.
-rw-r--r--Misc/NEWS6
-rw-r--r--Python/pystate.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index f1551b12d89..ec30734f30d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,12 @@ What's New in Python 2.5 alpha 1?
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.
diff --git a/Python/pystate.c b/Python/pystate.c
index 255cf7e86e8..abca8ddfdff 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -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 */