From 774479c68bf6953e89996c24287199d3f3331ba3 Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Mon, 18 Apr 2005 08:46:17 +0000 Subject: Fix: [ 1176893 ] Readline segfault by unsilly-ing PyGILState_Release(). Backport candidate. --- Misc/NEWS | 6 ++++++ Python/pystate.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Misc/NEWS b/Misc/NEWS index f1551b1..ec30734 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 255cf7e..abca8dd 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 */ -- cgit v0.12