aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-10-05 17:13:07 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2012-10-05 17:21:12 +0300
commitfd5942c18f977a36fec66a8d1281092805f2a55e (patch)
tree722501422b9f52f412729096be8f49688212474c /src/include
parent1997f34db4687e671690ed054c8f30bb501b1168 (diff)
downloadpostgresql-fd5942c18f977a36fec66a8d1281092805f2a55e.tar.gz
postgresql-fd5942c18f977a36fec66a8d1281092805f2a55e.zip
Use the regular main processing loop also in walsenders.
The regular backend's main loop handles signal handling and error recovery better than the current WAL sender command loop does. For example, if the client hangs and a SIGTERM is received before starting streaming, the walsender will now terminate immediately, rather than hang until the connection times out.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/replication/walsender.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/replication/walsender.h b/src/include/replication/walsender.h
index bb85ccf7b22..78e8558299c 100644
--- a/src/include/replication/walsender.h
+++ b/src/include/replication/walsender.h
@@ -19,7 +19,6 @@
/* global state */
extern bool am_walsender;
extern bool am_cascading_walsender;
-extern volatile sig_atomic_t walsender_shutdown_requested;
extern volatile sig_atomic_t walsender_ready_to_stop;
extern bool wake_wal_senders;
@@ -27,7 +26,9 @@ extern bool wake_wal_senders;
extern int max_wal_senders;
extern int replication_timeout;
-extern void WalSenderMain(void) __attribute__((noreturn));
+extern void InitWalSender(void);
+extern void exec_replication_command(const char *query_string);
+extern void WalSndErrorCleanup(void);
extern void WalSndSignals(void);
extern Size WalSndShmemSize(void);
extern void WalSndShmemInit(void);