summaryrefslogtreecommitdiff
path: root/src/signal/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/signal/signal.c')
-rw-r--r--src/signal/signal.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/signal/signal.c b/src/signal/signal.c
index 03913053..b328a19a 100644
--- a/src/signal/signal.c
+++ b/src/signal/signal.c
@@ -21,10 +21,8 @@
void (*signal(int sig, void (*func)(int)))(int)
{
- if (__signal.current != 0 && __signal.current != sig) {
- /* only safe if resetting the current signal handler */
- SIGNAL_SAFE(0);
- }
+ /* signal safe iff we are resetting the current signal handler */
+ SIGNAL_SAFE((__signal.current == sig));
if (sig < 0 || sig > NSIGNALS) {
/* FIXME: should errno be set? */