From 7ff20ac9c7519f3ecef33331f6222304fe1772f1 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Mon, 3 Nov 1997 21:53:55 +0000 Subject: [PATCH] Change the signal finialization so that it also resets the signal handlers. After this has been called, our signal handlers are no longer active! --- Modules/signalmodule.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index 2b4e5c3fb1f..e8154925278 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -513,13 +513,19 @@ static void finisignal() { int i; + PyObject *func; signal(SIGINT, old_siginthandler); + old_siginthandler = SIG_DFL; for (i = 1; i < NSIG; i++) { + func = Handlers[i].func; Handlers[i].tripped = 0; - Py_XDECREF(Handlers[i].func); Handlers[i].func = NULL; + if (i != SIGINT && func != NULL && func != Py_None && + func != DefaultHandler && func != IgnoreHandler) + signal(i, SIG_DFL); + Py_XDECREF(func); } Py_XDECREF(IntHandler);