Instead of talking about setting latches, which is a pretty low-level
mechanism, emphasize that they wake up other processes.
This is in preparation for replacing Latches with a new abstraction.
That's still work in progress, but this seems a little tidier anyway,
so let's get this refactoring out of the way already.
Discussion: https://www.postgresql.org/message-id/
391abe21-413e-4d91-a650-
b663af49500c%40iki.fi
* Wake up all waiters for replay LSN. They need to report an error that
* recovery was ended before reaching the target LSN.
*/
- WaitLSNSetLatches(InvalidXLogRecPtr);
+ WaitLSNWakeup(InvalidXLogRecPtr);
/*
* Shutdown the recovery environment. This must occur after
* until after the above call that flushes the XLOG_CHECKPOINT_ONLINE
* record.
*/
- SetWalSummarizerLatch();
+ WakeupWalSummarizer();
/*
* Let smgr do post-checkpoint cleanup (eg, deleting old files).
if (waitLSNState &&
(XLogRecoveryCtl->lastReplayedEndRecPtr >=
pg_atomic_read_u64(&waitLSNState->minWaitedLSN)))
- WaitLSNSetLatches(XLogRecoveryCtl->lastReplayedEndRecPtr);
+ WaitLSNWakeup(XLogRecoveryCtl->lastReplayedEndRecPtr);
/* Else, try to fetch the next WAL record */
record = ReadRecord(xlogprefetcher, LOG, false, replayTLI);
* and set latches for all waiters.
*/
void
-WaitLSNSetLatches(XLogRecPtr currentLSN)
+WaitLSNWakeup(XLogRecPtr currentLSN)
{
int i;
ProcNumber *wakeUpProcs;
}
/*
- * Attempt to set the WAL summarizer's latch.
+ * Wake up the WAL summarizer process.
*
* This might not work, because there's no guarantee that the WAL summarizer
* process was successfully started, and it also might have started but
* latch set, but there's no guarantee.
*/
void
-SetWalSummarizerLatch(void)
+WakeupWalSummarizer(void)
{
ProcNumber pgprocno;
extern Size WaitLSNShmemSize(void);
extern void WaitLSNShmemInit(void);
-extern void WaitLSNSetLatches(XLogRecPtr currentLSN);
+extern void WaitLSNWakeup(XLogRecPtr currentLSN);
extern void WaitLSNCleanup(void);
extern WaitLSNResult WaitForLSNReplay(XLogRecPtr targetLSN, int64 timeout);
int *summarizer_pid);
extern XLogRecPtr GetOldestUnsummarizedLSN(TimeLineID *tli,
bool *lsn_is_exact);
-extern void SetWalSummarizerLatch(void);
+extern void WakeupWalSummarizer(void);
extern void WaitForWalSummarization(XLogRecPtr lsn);
#endif