diff options
Diffstat (limited to 'threadproc/unix/signals.c')
-rw-r--r-- | threadproc/unix/signals.c | 10 |
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; |