aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2011-10-06 21:43:14 +0200
committerMagnus Hagander <magnus@hagander.net>2011-10-06 21:43:14 +0200
commit7aeff9f4a4e57dca5727828bf95f12cf63003270 (patch)
tree14013a3fe5776845c6c64d596ddd7912913eb26f /src
parent1cb018dd09268cab7f4ac1e8ab59b2277e7709f1 (diff)
downloadpostgresql-7aeff9f4a4e57dca5727828bf95f12cf63003270.tar.gz
postgresql-7aeff9f4a4e57dca5727828bf95f12cf63003270.zip
Ensure walsenders can be SIGTERMed while in non-walsender code
In oder to exit on SIGTERM when in non-walsender code, such as do_pg_stop_backup(), we need to set the interrupt variables that are used there, and not just the walsender local ones.
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/walsender.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 5d1c5180f2d..c8fd165dcb3 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -1302,6 +1302,13 @@ WalSndShutdownHandler(SIGNAL_ARGS)
if (MyWalSnd)
SetLatch(&MyWalSnd->latch);
+ /*
+ * Set the standard (non-walsender) state as well, so that we can
+ * abort things like do_pg_stop_backup().
+ */
+ InterruptPending = true;
+ ProcDiePending = true;
+
errno = save_errno;
}