diff options
author | Magnus Hagander <magnus@hagander.net> | 2011-10-06 21:43:14 +0200 |
---|---|---|
committer | Magnus Hagander <magnus@hagander.net> | 2011-10-06 21:43:14 +0200 |
commit | 7aeff9f4a4e57dca5727828bf95f12cf63003270 (patch) | |
tree | 14013a3fe5776845c6c64d596ddd7912913eb26f /src | |
parent | 1cb018dd09268cab7f4ac1e8ab59b2277e7709f1 (diff) | |
download | postgresql-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.c | 7 |
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; } |