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:09 +0100
commit671e1e2d1599aa8c5f1010b3fe75c151c56a7403 (patch)
tree906ba5d55d6993f59d7bb1def63d494bafd38728 /signal.c
parenta076248389c82276e079756bee26c011b03f70f2 (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
}