Hye-Shik Chang's fix for Bug 875692.

Improve signal handling, especially when using threads, by forcing an early
re-execution of PyEval_EvalFrame() "periodic" code when things_to_do is not
cleared by Py_MakePendingCalls().

M Misc/NEWS
M Python/ceval.c
This commit is contained in:
Kurt B. Kaiser 2004-11-23 18:06:08 +00:00
parent 8e6f2ded30
commit 4c79a83e0c
2 changed files with 19 additions and 0 deletions

View File

@ -4,6 +4,19 @@ Python News
(editors: check NEWS.help for information about editing NEWS using ReST.)
What's New in Python 2.4 release candidate 2
=====================================================
*Release date: XX-NOV-2004*
Core and builtins
-----------------
- Bug 875692: Improve signal handling, especially when using threads, by
forcing an early re-execution of PyEval_EvalFrame() "periodic" code when
things_to_do is not cleared by Py_MakePendingCalls().
What's New in Python 2.4 (release candidate 1|beta 3)
=====================================================

View File

@ -786,6 +786,12 @@ PyEval_EvalFrame(PyFrameObject *f)
why = WHY_EXCEPTION;
goto on_error;
}
if (things_to_do)
/* MakePendingCalls() didn't succeed.
Force early re-execution of this
"periodic" code, possibly after
a thread switch */
_Py_Ticker = 0;
}
#ifdef WITH_THREAD
if (interpreter_lock) {