summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS4
-rw-r--r--Modules/faulthandler.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index ab75cd02fb..cf253b3b25 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -138,6 +138,10 @@ Core and Builtins
Library
-------
+- Issue #18343: faulthandler.register() now keeps the previous signal handler
+ when the function is called twice, so faulthandler.unregister() restores
+ correctly the original signal handler.
+
- Issue #17097: Make multiprocessing ignore EINTR.
- Issue #18339: Negative ints keys in unpickler.memo dict no longer cause a
diff --git a/Modules/faulthandler.c b/Modules/faulthandler.c
index f49993d0f3..686a45a145 100644
--- a/Modules/faulthandler.c
+++ b/Modules/faulthandler.c
@@ -741,6 +741,8 @@ faulthandler_register_py(PyObject *self,
PyErr_SetFromErrno(PyExc_OSError);
return NULL;
}
+
+ user->previous = previous;
}
Py_XDECREF(user->file);
@@ -749,7 +751,6 @@ faulthandler_register_py(PyObject *self,
user->fd = fd;
user->all_threads = all_threads;
user->chain = chain;
- user->previous = previous;
user->interp = tstate->interp;
user->enabled = 1;