50#define WALRCV_STARTUP_TIMEOUT 10
85 startTime =
walrcv->startTime;
150 startTime =
walrcv->startTime;
205 switch (
walrcv->walRcvState)
290 if (slotname !=
NULL && slotname[0] !=
'\0')
293 walrcv->is_temp_slot =
false;
297 walrcv->slotname[0] =
'\0';
310 if (conninfo !=
NULL)
313 walrcv->conninfo[0] =
'\0';
326 walrcv->receivedTLI = tli;
336 walrcv->receiveStartTLI = tli;
364 if (latestChunkStart)
365 *latestChunkStart =
walrcv->latestChunkStart;
430 lastMsgSendTime =
walrcv->lastMsgSendTime;
431 lastMsgReceiptTime =
walrcv->lastMsgReceiptTime;
static uint64 pg_atomic_read_membarrier_u64(volatile pg_atomic_uint64 *ptr)
static void pg_atomic_init_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
static void pg_atomic_write_membarrier_u64(volatile pg_atomic_uint64 *ptr, uint64 val)
long TimestampDifferenceMilliseconds(TimestampTz start_time, TimestampTz stop_time)
TimestampTz GetCurrentTimestamp(void)
Datum now(PG_FUNCTION_ARGS)
#define Assert(condition)
#define MemSet(start, val, len)
bool ConditionVariableCancelSleep(void)
void ConditionVariableBroadcast(ConditionVariable *cv)
void ConditionVariablePrepareToSleep(ConditionVariable *cv)
void ConditionVariableInit(ConditionVariable *cv)
void ConditionVariableSleep(ConditionVariable *cv, uint32 wait_event_info)
void SetLatch(Latch *latch)
void SendPostmasterSignal(PMSignalReason reason)
@ PMSIGNAL_START_WALRECEIVER
size_t strlcpy(char *dst, const char *src, size_t siz)
#define GetPGProcByNumber(n)
#define INVALID_PROC_NUMBER
#define ShmemRequestStruct(...)
static void SpinLockRelease(volatile slock_t *lock)
static void SpinLockAcquire(volatile slock_t *lock)
static void SpinLockInit(volatile slock_t *lock)
ShmemRequestCallback request_fn
ConditionVariable walRcvStoppedCV
pg_atomic_uint64 writtenUpto
XLogRecPtr GetWalRcvFlushRecPtr(XLogRecPtr *latestChunkStart, TimeLineID *receiveTLI)
bool WalRcvStreaming(void)
void RequestXLogStreaming(TimeLineID tli, XLogRecPtr recptr, const char *conninfo, const char *slotname, bool create_temp_slot)
XLogRecPtr GetWalRcvWriteRecPtr(void)
void ShutdownWalRcv(void)
const ShmemCallbacks WalRcvShmemCallbacks
#define WALRCV_STARTUP_TIMEOUT
static void WalRcvShmemInit(void *arg)
WalRcvState WalRcvGetState(void)
static void WalRcvShmemRequest(void *arg)
int GetReplicationApplyDelay(void)
int GetReplicationTransferLatency(void)
#define XLogSegmentOffset(xlogptr, wal_segsz_bytes)
#define XLogRecPtrIsValid(r)
static TimeLineID receiveTLI
TimestampTz GetCurrentChunkReplayStartTime(void)
XLogRecPtr GetXLogReplayRecPtr(TimeLineID *replayTLI)