mirror of
https://github.com/postgres/postgres.git
synced 2026-04-15 22:10:45 -04: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:
parent
c5ae07a90a
commit
b27e48213f
2 changed files with 9 additions and 8 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue