aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication/logical/launcher.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2017-06-01 23:05:47 -0400
committerPeter Eisentraut <peter_e@gmx.net>2017-06-01 23:16:20 -0400
commit6812330f1cc95f258ffe4ce7d56bdd56efbd9fde (patch)
tree7f48cb78927ea2534827976231fc90fc8af02325 /src/backend/replication/logical/launcher.c
parent2d460179baa8744e9e2a183a5121306596c53fba (diff)
downloadpostgresql-6812330f1cc95f258ffe4ce7d56bdd56efbd9fde.tar.gz
postgresql-6812330f1cc95f258ffe4ce7d56bdd56efbd9fde.zip
Reorganize logical replication worker disconnect code
Move the walrcv_disconnect() calls into the before_shmem_exit handler. This makes sure the call is always made even during exit by signal, it saves some duplicate code, and it makes the logic more similar to walreceiver.c. Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
Diffstat (limited to 'src/backend/replication/logical/launcher.c')
-rw-r--r--src/backend/replication/logical/launcher.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c
index b956052014b..63d903ac021 100644
--- a/src/backend/replication/logical/launcher.c
+++ b/src/backend/replication/logical/launcher.c
@@ -614,7 +614,13 @@ logicalrep_launcher_onexit(int code, Datum arg)
static void
logicalrep_worker_onexit(int code, Datum arg)
{
+ /* Disconnect gracefully from the remote side. */
+ if (wrconn)
+ walrcv_disconnect(wrconn);
+
logicalrep_worker_detach();
+
+ ApplyLauncherWakeup();
}
/* SIGTERM: set flag to exit at next convenient time */