aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/walreceiver.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c
index 42f6c26f28b..600f5d53eba 100644
--- a/src/backend/replication/walreceiver.c
+++ b/src/backend/replication/walreceiver.c
@@ -196,6 +196,7 @@ WalReceiverMain(void)
/* use volatile pointer to prevent code rearrangement */
volatile WalRcvData *walrcv = WalRcv;
TimestampTz last_recv_timestamp;
+ TimestampTz now;
bool ping_sent;
/*
@@ -204,6 +205,8 @@ WalReceiverMain(void)
*/
Assert(walrcv != NULL);
+ now = GetCurrentTimestamp();
+
/*
* Mark walreceiver as running in shared memory.
*
@@ -234,6 +237,7 @@ WalReceiverMain(void)
case WALRCV_RESTARTING:
default:
/* Shouldn't happen */
+ SpinLockRelease(&walrcv->mutex);
elog(PANIC, "walreceiver still running according to shared memory state");
}
/* Advertise our PID so that the startup process can kill us */
@@ -247,7 +251,8 @@ WalReceiverMain(void)
startpointTLI = walrcv->receiveStartTLI;
/* Initialise to a sanish value */
- walrcv->lastMsgSendTime = walrcv->lastMsgReceiptTime = walrcv->latestWalEndTime = GetCurrentTimestamp();
+ walrcv->lastMsgSendTime =
+ walrcv->lastMsgReceiptTime = walrcv->latestWalEndTime = now;
SpinLockRelease(&walrcv->mutex);