summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authorToby Goodwin <tgoodwin@cygnus.co.uk>1997-07-07 00:00:01 +0100
committerToby Goodwin <toby@paccrat.org>2015-05-16 21:22:59 +0100
commitb87bfedf65c289bf0ee5338c9e10492b70b1e8e0 (patch)
tree906ba5d55d6993f59d7bb1def63d494bafd38728 /signal.c
parent5556dde4d3ad4e34267320b1411fc090b18a24b0 (diff)
beta: rc-1.5b2
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/signal.c b/signal.c
index 6bca945..1c3f812 100644
--- a/signal.c
+++ b/signal.c
@@ -19,7 +19,7 @@ extern void catcher(int s) {
}
signal(s, catcher);
interrupt_happened = TRUE;
-#ifndef SVSIGS
+#ifndef HAVE_RESTARTABLE_SYSCALLS
if (slow)
longjmp(slowbuf.j, 1);
#endif
@@ -70,4 +70,11 @@ extern void initsignal() {
signal(i, h);
sighandlers[i] = h;
}
+
+#ifdef SIGCLD
+ /* Ensure that SIGCLD is not SIG_IGN. Solaris's rshd does this. :-( */
+ h = signal(SIGCLD, SIG_DFL);
+ if (h != SIG_IGN)
+ signal(SIGCLD, h);
+#endif
}