summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2004-08-15 05:25:10 +0000
committerTom Lane2004-08-15 05:25:10 +0000
commit652ae624c3e08f76a675c591be66f975a149ce8c (patch)
tree43c75ebd5d103f9deed175e3aa388ede64146d07
parentf3f110c4e8d1cf1ea71699b92675b6a044e86e7e (diff)
Specify SA_NOCLDSTOP when enabling SIGCHLD, per suggestion from
Oliver Jowett.
-rw-r--r--src/backend/libpq/pqsignal.c4
-rw-r--r--src/interfaces/libpq/pqsignal.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/libpq/pqsignal.c b/src/backend/libpq/pqsignal.c
index 2a2bab7a4e..c236a088af 100644
--- a/src/backend/libpq/pqsignal.c
+++ b/src/backend/libpq/pqsignal.c
@@ -159,6 +159,10 @@ pqsignal(int signo, pqsigfunc func)
act.sa_flags = 0;
if (signo != SIGALRM)
act.sa_flags |= SA_RESTART;
+#ifdef SA_NOCLDSTOP
+ if (signo == SIGCHLD)
+ act.sa_flags |= SA_NOCLDSTOP;
+#endif
if (sigaction(signo, &act, &oact) < 0)
return SIG_ERR;
return oact.sa_handler;
diff --git a/src/interfaces/libpq/pqsignal.c b/src/interfaces/libpq/pqsignal.c
index 80e5de0cce..ac812ba403 100644
--- a/src/interfaces/libpq/pqsignal.c
+++ b/src/interfaces/libpq/pqsignal.c
@@ -35,6 +35,10 @@ pqsignal(int signo, pqsigfunc func)
act.sa_flags = 0;
if (signo != SIGALRM)
act.sa_flags |= SA_RESTART;
+#ifdef SA_NOCLDSTOP
+ if (signo == SIGCHLD)
+ act.sa_flags |= SA_NOCLDSTOP;
+#endif
if (sigaction(signo, &act, &oact) < 0)
return SIG_ERR;
return oact.sa_handler;