aboutsummaryrefslogtreecommitdiffstats
path: root/src/signal_check.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/signal_check.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/signal_check.c b/src/signal_check.c
index 3926ae7b0..b46344488 100644
--- a/src/signal_check.c
+++ b/src/signal_check.c
@@ -1,5 +1,7 @@
#include "signal_check.h"
+#include <errno.h>
+
volatile sig_atomic_t __caught_signals[NSIG];
static void __signal_handler(int sig)
@@ -12,7 +14,7 @@ static void __set_signal_handler(int sig, void (* handler)(int))
struct sigaction act;
act.sa_flags = 0;
act.sa_handler = handler;
- sigaction(sig, &act, 0);
+ while(sigaction(sig, &act, 0) && errno==EINTR);
}
void signal_handle(int sig)