From 67b2347df91ac7552044457c7b5cdaa1366bc76b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Fri, 4 Apr 2025 14:25:39 +0200 Subject: [PATCH] signal: keep waiting for process to exit on SIGQUIT the SA_RESTART flag causes syscalls such as waitpid to be resumed after a signal is handled, which is what we want. --- src/sig/sig.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sig/sig.c b/src/sig/sig.c index df9d656..9214635 100644 --- a/src/sig/sig.c +++ b/src/sig/sig.c @@ -6,11 +6,12 @@ /* By: jguelen +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/20 10:26:05 by jguelen #+# #+# */ -/* Updated: 2025/02/21 17:02:33 by jguelen ### ########.fr */ +/* Updated: 2025/04/04 14:25:35 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "sig.h" +#include "signal.h" /* ** g_signum exists to store the value of a signal if relevant for later @@ -53,6 +54,7 @@ int set_interactive_mode_sig_handling(void) ft_bzero(&sig_act, sizeof(struct sigaction)); sig_act.sa_handler = &sig_interactive; + sig_act.sa_flags |= SA_RESTART; if (sigemptyset(&sig_act.sa_mask) == -1) return (-1); if (sigaction(SIGINT, &sig_act, NULL) == -1)