summaryrefslogtreecommitdiff
path: root/threadproc/unix/signals.c
diff options
context:
space:
mode:
authorJeff Trawick <trawick@apache.org>2002-04-19 17:21:05 +0000
committerJeff Trawick <trawick@apache.org>2002-04-19 17:21:05 +0000
commit2d9fb10665318802605936914ddc6e9f896354fb (patch)
tree85eed895c05b973e753b95bc32f866e6f2e9bb27 /threadproc/unix/signals.c
parenta953e72357577935878c6eb9450c9202c7f7ce54 (diff)
downloadapr-2d9fb10665318802605936914ddc6e9f896354fb.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: https://svn.apache.org/repos/asf/apr/apr/trunk@63282 13f79535-47bb-0310-9956-ffa450edef68
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;