diff options
-rw-r--r-- | src/backend/libpq/pqsignal.c | 4 | ||||
-rw-r--r-- | src/interfaces/libpq/pqsignal.c | 4 |
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; |