summaryrefslogtreecommitdiff
path: root/threadproc/unix/signals.c
diff options
context:
space:
mode:
Diffstat (limited to 'threadproc/unix/signals.c')
-rw-r--r--threadproc/unix/signals.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/threadproc/unix/signals.c b/threadproc/unix/signals.c
index 304e50aed..5659c9200 100644
--- a/threadproc/unix/signals.c
+++ b/threadproc/unix/signals.c
@@ -105,6 +105,16 @@ APR_DECLARE(apr_sigfunc_t *) apr_signal(int signo, apr_sigfunc_t * func)
#ifdef SA_INTERRUPT /* SunOS */
act.sa_flags |= SA_INTERRUPT;
#endif
+#if defined(__osf__) && defined(__alpha)
+ /* XXX jeff thinks this should be enabled whenever SA_NOCLDWAIT is defined */
+
+ /* this is required on Tru64 to cause child processes to
+ * disappear gracefully - XPG4 compatible
+ */
+ if ((signo == SIGCHLD) && (func == SIG_IGN)) {
+ act.sa_flags |= SA_NOCLDWAIT;
+ }
+ #endif
if (sigaction(signo, &act, &oact) < 0)
return SIG_ERR;
return oact.sa_handler;