diff Python/ceval.c @ 34020:be370abb020f legacy-trunk

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
author Kurt B. Kaiser <kbk@shore.net>
date Tue, 23 Nov 2004 18:06:08 +0000
parents a46b76eb9053
children dd4357a5da7c 8a8d844767b6
line wrap: on
line diff
--- a/Python/ceval.c	Tue Nov 23 09:27:27 2004 +0000
+++ b/Python/ceval.c	Tue Nov 23 18:06:08 2004 +0000
@@ -786,6 +786,12 @@
 					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) {