From 2c3a7b5f41a95f5f2495faf508b9a168050bfe6f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 4 Jun 2022 14:28:56 +0530 Subject: [PATCH] Restore a couple more signal handlers that python nukes --- kitty/child.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kitty/child.c b/kitty/child.c index 36f0dc978..b2a8f9317 100644 --- a/kitty/child.c +++ b/kitty/child.c @@ -98,10 +98,17 @@ spawn(PyObject *self UNUSED, PyObject *args) { #if PY_VERSION_HEX >= 0x03070000 PyOS_AfterFork_Child(); #endif + // See _Py_RestoreSignals in signalmodule.c for a list of signals python nukes sigset_t signals = {0}; struct sigaction act = {.sa_handler=SIG_DFL}; #define SA(which) { if (sigaction(which, &act, NULL) != 0) exit_on_err("sigaction() in child process failed"); } SA(SIGINT); SA(SIGTERM); SA(SIGCHLD); SA(SIGPIPE); +#ifdef SIGXFSZ + SA(SIGXFSZ); +#endif +#ifdef SIGXFZ + SA(SIGXFZ); +#endif #undef SA if (sigprocmask(SIG_SETMASK, &signals, NULL) != 0) exit_on_err("sigprocmask() in child process failed"); // Use only signal-safe functions (man 7 signal-safety)