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.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/fd5942c18f977a36fec66a8d1281092805f2a55e
Modified Files
--------------
src/backend/replication/basebackup.c | 16 +--
src/backend/replication/walsender.c | 269 ++++++++--------------------------
src/backend/tcop/postgres.c | 51 ++++++-
src/include/replication/walsender.h | 5 +-
4 files changed, 109 insertions(+), 232 deletions(-)