Change the signal finialization so that it also resets the signal

handlers.  After this has been called, our signal handlers are no
longer active!
This commit is contained in:
Guido van Rossum 1997-11-03 21:53:55 +00:00
parent 615022fbf8
commit 7ff20ac9c7
1 changed files with 7 additions and 1 deletions

View File

@ -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);