diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-15 05:25:10 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-08-15 05:25:10 +0000 |
commit | 2820f05ef93574873dfcb03bb5b1841e87d3e6e2 (patch) | |
tree | 256c03446179885246a49be5b53be70880dda1ce /src | |
parent | 2284cfa255f2af168e59f2377427dd8ebc3a0f1d (diff) | |
download | postgresql-2820f05ef93574873dfcb03bb5b1841e87d3e6e2.tar.gz postgresql-2820f05ef93574873dfcb03bb5b1841e87d3e6e2.zip |
Specify SA_NOCLDSTOP when enabling SIGCHLD, per suggestion from
Oliver Jowett.
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/libpq/pqsignal.c | 6 | ||||
-rw-r--r-- | src/interfaces/libpq/pqsignal.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/backend/libpq/pqsignal.c b/src/backend/libpq/pqsignal.c index 468c062aa43..289f43a98e9 100644 --- a/src/backend/libpq/pqsignal.c +++ b/src/backend/libpq/pqsignal.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/libpq/pqsignal.c,v 1.34 2004/05/29 22:48:19 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/libpq/pqsignal.c,v 1.35 2004/08/15 05:25:10 tgl Exp $ * * NOTES * This shouldn't be in libpq, but the monitor and some other @@ -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 dca69cd727c..59654149b41 100644 --- a/src/interfaces/libpq/pqsignal.c +++ b/src/interfaces/libpq/pqsignal.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/pqsignal.c,v 1.20 2004/02/02 00:11:31 momjian Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/pqsignal.c,v 1.21 2004/08/15 05:25:10 tgl Exp $ * * NOTES * This shouldn't be in libpq, but the monitor and some other @@ -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; |