summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2002-04-19 17:21:05 +0000
committertrawick <trawick@13f79535-47bb-0310-9956-ffa450edef68>2002-04-19 17:21:05 +0000
commit5ce666195dbc1c97e68a7456fbc193860a4671f6 (patch)
tree85eed895c05b973e753b95bc32f866e6f2e9bb27
parentc8b00c4bf46a48aa80dd01db25c1b351cbd484d3 (diff)
downloadlibapr-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--CHANGES4
-rw-r--r--threadproc/unix/signals.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index aeac99cd0..d783ed540 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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;