mirror of
https://github.com/python/cpython.git
synced 2025-08-03 00:23:06 +00:00
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:
parent
8e6f2ded30
commit
4c79a83e0c
2 changed files with 19 additions and 0 deletions
13
Misc/NEWS
13
Misc/NEWS
|
@ -4,6 +4,19 @@ Python News
|
||||||
|
|
||||||
(editors: check NEWS.help for information about editing NEWS using ReST.)
|
(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)
|
What's New in Python 2.4 (release candidate 1|beta 3)
|
||||||
=====================================================
|
=====================================================
|
||||||
|
|
||||||
|
|
|
@ -786,6 +786,12 @@ PyEval_EvalFrame(PyFrameObject *f)
|
||||||
why = WHY_EXCEPTION;
|
why = WHY_EXCEPTION;
|
||||||
goto on_error;
|
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
|
#ifdef WITH_THREAD
|
||||||
if (interpreter_lock) {
|
if (interpreter_lock) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue