mirror of
https://github.com/postgres/postgres.git
synced 2025-12-18 05:01:01 +03:00
Refactor WaitLSNType enum to use a macro for type count
Change WAIT_LSN_TYPE_COUNT from an enum sentinel to a macro definition, in a similar way to IOObject, IOContext, and BackendType enums. Remove explicit enum value assignments well. Author: Xuneng Zhou <xunengzhou@gmail.com>
This commit is contained in:
@@ -126,7 +126,7 @@ updateMinWaitedLSN(WaitLSNType lsnType)
|
||||
XLogRecPtr minWaitedLSN = PG_UINT64_MAX;
|
||||
int i = (int) lsnType;
|
||||
|
||||
Assert(i >= 0 && i < (int) WAIT_LSN_TYPE_COUNT);
|
||||
Assert(i >= 0 && i < WAIT_LSN_TYPE_COUNT);
|
||||
|
||||
if (!pairingheap_is_empty(&waitLSNState->waitersHeap[i]))
|
||||
{
|
||||
@@ -147,7 +147,7 @@ addLSNWaiter(XLogRecPtr lsn, WaitLSNType lsnType)
|
||||
WaitLSNProcInfo *procInfo = &waitLSNState->procInfos[MyProcNumber];
|
||||
int i = (int) lsnType;
|
||||
|
||||
Assert(i >= 0 && i < (int) WAIT_LSN_TYPE_COUNT);
|
||||
Assert(i >= 0 && i < WAIT_LSN_TYPE_COUNT);
|
||||
|
||||
LWLockAcquire(WaitLSNLock, LW_EXCLUSIVE);
|
||||
|
||||
@@ -172,7 +172,7 @@ deleteLSNWaiter(WaitLSNType lsnType)
|
||||
WaitLSNProcInfo *procInfo = &waitLSNState->procInfos[MyProcNumber];
|
||||
int i = (int) lsnType;
|
||||
|
||||
Assert(i >= 0 && i < (int) WAIT_LSN_TYPE_COUNT);
|
||||
Assert(i >= 0 && i < WAIT_LSN_TYPE_COUNT);
|
||||
|
||||
LWLockAcquire(WaitLSNLock, LW_EXCLUSIVE);
|
||||
|
||||
@@ -213,7 +213,7 @@ wakeupWaiters(WaitLSNType lsnType, XLogRecPtr currentLSN)
|
||||
int numWakeUpProcs;
|
||||
int i = (int) lsnType;
|
||||
|
||||
Assert(i >= 0 && i < (int) WAIT_LSN_TYPE_COUNT);
|
||||
Assert(i >= 0 && i < WAIT_LSN_TYPE_COUNT);
|
||||
|
||||
do
|
||||
{
|
||||
@@ -270,7 +270,7 @@ WaitLSNWakeup(WaitLSNType lsnType, XLogRecPtr currentLSN)
|
||||
{
|
||||
int i = (int) lsnType;
|
||||
|
||||
Assert(i >= 0 && i < (int) WAIT_LSN_TYPE_COUNT);
|
||||
Assert(i >= 0 && i < WAIT_LSN_TYPE_COUNT);
|
||||
|
||||
/*
|
||||
* Fast path check. Skip if currentLSN is InvalidXLogRecPtr, which means
|
||||
|
||||
@@ -35,11 +35,12 @@ typedef enum
|
||||
*/
|
||||
typedef enum WaitLSNType
|
||||
{
|
||||
WAIT_LSN_TYPE_REPLAY = 0, /* Waiting for replay on standby */
|
||||
WAIT_LSN_TYPE_FLUSH = 1, /* Waiting for flush on primary */
|
||||
WAIT_LSN_TYPE_COUNT = 2
|
||||
WAIT_LSN_TYPE_REPLAY, /* Waiting for replay on standby */
|
||||
WAIT_LSN_TYPE_FLUSH, /* Waiting for flush on primary */
|
||||
} WaitLSNType;
|
||||
|
||||
#define WAIT_LSN_TYPE_COUNT (WAIT_LSN_TYPE_FLUSH + 1)
|
||||
|
||||
/*
|
||||
* WaitLSNProcInfo - the shared memory structure representing information
|
||||
* about the single process, which may wait for LSN operations. An item of
|
||||
|
||||
Reference in New Issue
Block a user