diff options
author | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2002-04-19 17:21:05 +0000 |
---|---|---|
committer | trawick <trawick@13f79535-47bb-0310-9956-ffa450edef68> | 2002-04-19 17:21:05 +0000 |
commit | 5ce666195dbc1c97e68a7456fbc193860a4671f6 (patch) | |
tree | 85eed895c05b973e753b95bc32f866e6f2e9bb27 | |
parent | c8b00c4bf46a48aa80dd01db25c1b351cbd484d3 (diff) | |
download | libapr-5ce666195dbc1c97e68a7456fbc193860a4671f6.tar.gz |
Tru64: Stop leaving zombies in APR apps like mod_cgid which
tell APR to ignore SIGCHLD.
Submitted by: Dave Hill <David.D.Hill@Compaq.com>
Reviewed by: Jeff Trawick
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@63282 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | threadproc/unix/signals.c | 10 |
2 files changed, 14 insertions, 0 deletions
@@ -1,5 +1,9 @@ Changes with APR b1 + *) Tru64: Stop leaving zombies in APR apps like mod_cgid which + tell APR to ignore SIGCHLD. + [Dave Hill <David.D.Hill@Compaq.com>] + *) Ensure that the ATOMIC_HASH can not be negative. [Joe Orton <jorton@redhat.com>] 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; |