34 #define PGPROC_MAX_CACHED_SUBXIDS 64
42 #define PROC_IS_AUTOVACUUM 0x01
43 #define PROC_IN_VACUUM 0x02
44 #define PROC_IN_ANALYZE 0x04
45 #define PROC_VACUUM_FOR_WRAPAROUND 0x08
46 #define PROC_IN_LOGICAL_DECODING 0x10
50 #define PROC_VACUUM_STATE_MASK \
51 (PROC_IN_VACUUM | PROC_IN_ANALYZE | PROC_VACUUM_FOR_WRAPAROUND)
59 #define FP_LOCK_SLOTS_PER_BACKEND 16
65 #define INVALID_PGPROCNO PG_INT32_MAX
253 #define NUM_AUXILIARY_PROCS 4
PGDLLIMPORT PGPROC * MyProc
bool procArrayGroupMember
dlist_head lockGroupMembers
PGPROC * bgworkerFreeProcs
int GetStartupBufferPinWaitBufId(void)
int ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable)
void LockErrorCleanup(void)
PGPROC * autovacFreeProcs
void ProcSendSignal(int pid)
PGPROC * ProcWakeup(PGPROC *proc, int waitStatus)
void SetStartupBufferPinWaitBufId(int bufid)
void InitProcessPhase2(void)
bool BecomeLockGroupMember(PGPROC *leader, int pid)
int ProcGlobalSemas(void)
int IdleInTransactionSessionTimeout
#define FP_LOCK_SLOTS_PER_BACKEND
bool recoveryConflictPending
void ProcWaitForSignal(void)
bool HaveNFreeProcs(int n)
uint32 LocalTransactionId
void ProcReleaseLocks(bool isCommit)
void BecomeLockGroupLeader(void)
void ProcLockWakeup(LockMethod lockMethodTable, LOCK *lock)
pg_atomic_uint32 procArrayGroupNext
PGDLLIMPORT struct PGXACT * MyPgXact
PGPROC * PreparedXactProcs
#define PGPROC_MAX_CACHED_SUBXIDS
Latch * checkpointerLatch
TransactionId xids[PGPROC_MAX_CACHED_SUBXIDS]
Oid fpRelId[FP_LOCK_SLOTS_PER_BACKEND]
void InitProcGlobal(void)
void ProcQueueInit(PROC_QUEUE *queue)
void CheckDeadLockAlert(void)
void InitAuxiliaryProcess(void)
void PublishStartupProcessInformation(void)
pg_atomic_uint32 procArrayGroupFirst
bool IsWaitingForLock(void)
int startupBufferPinWaitBufId
SHM_QUEUE myProcLocks[NUM_LOCK_PARTITIONS]
Size ProcGlobalShmemSize(void)
LocalTransactionId fpLocalTransactionId
TransactionId procArrayGroupMemberXid
#define NUM_LOCK_PARTITIONS