PostgreSQL Source Code git master
|
#include "access/clog.h"
#include "access/xlogdefs.h"
#include "lib/ilist.h"
#include "storage/latch.h"
#include "storage/lock.h"
#include "storage/pg_sema.h"
#include "storage/proclist_types.h"
#include "storage/procnumber.h"
Go to the source code of this file.
Data Structures | |
struct | XidCacheStatus |
struct | XidCache |
struct | PGPROC |
struct | PROC_HDR |
Macros | |
#define | PGPROC_MAX_CACHED_SUBXIDS 64 /* XXX guessed-at value */ |
#define | PROC_IS_AUTOVACUUM 0x01 /* is it an autovac worker? */ |
#define | PROC_IN_VACUUM 0x02 /* currently running lazy vacuum */ |
#define | PROC_IN_SAFE_IC |
#define | PROC_VACUUM_FOR_WRAPAROUND 0x08 /* set by autovac only */ |
#define | PROC_IN_LOGICAL_DECODING |
#define | PROC_AFFECTS_ALL_HORIZONS |
#define | PROC_VACUUM_STATE_MASK (PROC_IN_VACUUM | PROC_IN_SAFE_IC | PROC_VACUUM_FOR_WRAPAROUND) |
#define | PROC_XMIN_FLAGS (PROC_IN_VACUUM | PROC_IN_SAFE_IC) |
#define | FP_LOCK_GROUPS_PER_BACKEND_MAX 1024 |
#define | FP_LOCK_SLOTS_PER_GROUP 16 /* don't change */ |
#define | FP_LOCK_SLOTS_PER_BACKEND (FP_LOCK_SLOTS_PER_GROUP * FastPathLockGroupsPerBackend) |
#define | DELAY_CHKPT_START (1<<0) |
#define | DELAY_CHKPT_COMPLETE (1<<1) |
#define | GetPGProcByNumber(n) (&ProcGlobal->allProcs[(n)]) |
#define | GetNumberFromPGProc(proc) ((proc) - &ProcGlobal->allProcs[0]) |
#define | NUM_SPECIAL_WORKER_PROCS 2 |
#define | NUM_AUXILIARY_PROCS 6 |
Typedefs | |
typedef struct XidCacheStatus | XidCacheStatus |
typedef struct PROC_HDR | PROC_HDR |
Enumerations | |
enum | ProcWaitStatus { PROC_WAIT_STATUS_OK , PROC_WAIT_STATUS_WAITING , PROC_WAIT_STATUS_ERROR } |
Functions | |
int | ProcGlobalSemas (void) |
Size | ProcGlobalShmemSize (void) |
void | InitProcGlobal (void) |
void | InitProcess (void) |
void | InitProcessPhase2 (void) |
void | InitAuxiliaryProcess (void) |
void | SetStartupBufferPinWaitBufId (int bufid) |
int | GetStartupBufferPinWaitBufId (void) |
bool | HaveNFreeProcs (int n, int *nfree) |
void | ProcReleaseLocks (bool isCommit) |
ProcWaitStatus | JoinWaitQueue (LOCALLOCK *locallock, LockMethod lockMethodTable, bool dontWait) |
ProcWaitStatus | ProcSleep (LOCALLOCK *locallock) |
void | ProcWakeup (PGPROC *proc, ProcWaitStatus waitStatus) |
void | ProcLockWakeup (LockMethod lockMethodTable, LOCK *lock) |
void | CheckDeadLockAlert (void) |
void | LockErrorCleanup (void) |
void | ProcWaitForSignal (uint32 wait_event_info) |
void | ProcSendSignal (ProcNumber procNumber) |
PGPROC * | AuxiliaryPidGetProc (int pid) |
void | BecomeLockGroupLeader (void) |
bool | BecomeLockGroupMember (PGPROC *leader, int pid) |
#define FP_LOCK_SLOTS_PER_BACKEND (FP_LOCK_SLOTS_PER_GROUP * FastPathLockGroupsPerBackend) |
#define GetNumberFromPGProc | ( | proc | ) | ((proc) - &ProcGlobal->allProcs[0]) |
#define GetPGProcByNumber | ( | n | ) | (&ProcGlobal->allProcs[(n)]) |
#define PROC_AFFECTS_ALL_HORIZONS |
#define PROC_IN_LOGICAL_DECODING |
#define PROC_IN_SAFE_IC |
#define PROC_IN_VACUUM 0x02 /* currently running lazy vacuum */ |
#define PROC_IS_AUTOVACUUM 0x01 /* is it an autovac worker? */ |
#define PROC_VACUUM_FOR_WRAPAROUND 0x08 /* set by autovac only */ |
#define PROC_VACUUM_STATE_MASK (PROC_IN_VACUUM | PROC_IN_SAFE_IC | PROC_VACUUM_FOR_WRAPAROUND) |
#define PROC_XMIN_FLAGS (PROC_IN_VACUUM | PROC_IN_SAFE_IC) |
typedef struct XidCacheStatus XidCacheStatus |
enum ProcWaitStatus |
PGPROC * AuxiliaryPidGetProc | ( | int | pid | ) |
Definition at line 1040 of file proc.c.
References AuxiliaryProcs, NUM_AUXILIARY_PROCS, and PGPROC::pid.
Referenced by pg_log_backend_memory_contexts(), and pg_stat_get_activity().
void BecomeLockGroupLeader | ( | void | ) |
Definition at line 1923 of file proc.c.
References Assert, dlist_push_head(), PGPROC::lockGroupLeader, PGPROC::lockGroupLink, PGPROC::lockGroupMembers, LockHashPartitionLockByProc, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), and MyProc.
Referenced by LaunchParallelWorkers().
bool BecomeLockGroupMember | ( | PGPROC * | leader, |
int | pid | ||
) |
Definition at line 1953 of file proc.c.
References Assert, dlist_push_tail(), PGPROC::lockGroupLeader, PGPROC::lockGroupLink, PGPROC::lockGroupMembers, LockHashPartitionLockByProc, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProc, and PGPROC::pid.
Referenced by ParallelWorkerMain().
void CheckDeadLockAlert | ( | void | ) |
Definition at line 1870 of file proc.c.
References got_deadlock_timeout, MyLatch, and SetLatch().
Referenced by InitPostgres(), and ProcessRecoveryConflictInterrupt().
int GetStartupBufferPinWaitBufId | ( | void | ) |
Definition at line 717 of file proc.c.
References ProcGlobal, and PROC_HDR::startupBufferPinWaitBufId.
Referenced by HoldingBufferPinThatDelaysRecovery(), and ProcessRecoveryConflictInterrupt().
bool HaveNFreeProcs | ( | int | n, |
int * | nfree | ||
) |
Definition at line 733 of file proc.c.
References Assert, dlist_foreach, PROC_HDR::freeProcs, ProcGlobal, ProcStructLock, SpinLockAcquire, and SpinLockRelease.
Referenced by InitPostgres().
void InitAuxiliaryProcess | ( | void | ) |
Definition at line 566 of file proc.c.
References Assert, AuxiliaryProcKill(), AuxiliaryProcs, PGPROC::databaseId, PGPROC::delayChkptFlags, dlist_is_empty(), dlist_node_init(), elog, ERROR, FATAL, PGPROC::fpLocalTransactionId, PGPROC::fpVXIDLock, GetNumberFromPGProc, i, InitLWLockAccess(), Int32GetDatum(), INVALID_PROC_NUMBER, InvalidLocalTransactionId, InvalidOid, InvalidTransactionId, PGPROC::isRegularBackend, IsUnderPostmaster, PGPROC::links, PGPROC::lockGroupLeader, PGPROC::lockGroupMembers, LW_WS_NOT_WAITING, PGPROC::lwWaiting, PGPROC::lwWaitMode, PGPROC::lxid, MyProc, PGPROC::myProcLocks, MyProcNumber, MyProcPid, NUM_AUXILIARY_PROCS, NUM_LOCK_PARTITIONS, on_shmem_exit(), OwnLatch(), PANIC, pg_atomic_write_u64(), PGSemaphoreReset(), pgstat_set_wait_event_storage(), PGPROC::pid, PROC_WAIT_STATUS_OK, ProcGlobal, PGPROC::procLatch, PGPROC::procNumber, ProcStructLock, RegisterPostmasterChildActive(), PGPROC::roleId, PGPROC::sem, set_spins_per_delay(), SpinLockAcquire, SpinLockRelease, PROC_HDR::spins_per_delay, PGPROC::statusFlags, SwitchToSharedLatch(), PGPROC::tempNamespaceId, PGPROC::vxid, PGPROC::wait_event_info, PGPROC::waitLock, PGPROC::waitProcLock, PGPROC::waitStart, PGPROC::waitStatus, PGPROC::xid, and PGPROC::xmin.
Referenced by AuxiliaryProcessMainCommon().
void InitProcess | ( | void | ) |
Definition at line 341 of file proc.c.
References AmAutoVacuumWorkerProcess, AmBackgroundWorkerProcess, AmRegularBackendProcess, AmSpecialWorkerProcess, AmWalSenderProcess, Assert, PROC_HDR::autovacFreeProcs, PROC_HDR::bgworkerFreeProcs, PGPROC::clogGroupMember, PGPROC::clogGroupMemberLsn, PGPROC::clogGroupMemberPage, PGPROC::clogGroupMemberXid, PGPROC::clogGroupMemberXidStatus, PGPROC::clogGroupNext, PGPROC::databaseId, PGPROC::delayChkptFlags, dlist_container, dlist_is_empty(), dlist_node_init(), dlist_pop_head_node(), elog, ereport, errcode(), errmsg(), ERROR, FATAL, PGPROC::fpLocalTransactionId, PGPROC::fpVXIDLock, PROC_HDR::freeProcs, GetNumberFromPGProc, i, InitDeadLockChecking(), InitLWLockAccess(), INVALID_PROC_NUMBER, InvalidLocalTransactionId, InvalidOid, InvalidTransactionId, InvalidXLogRecPtr, PGPROC::isRegularBackend, IsUnderPostmaster, PGPROC::links, links, PGPROC::lockGroupLeader, PGPROC::lockGroupMembers, LW_WS_NOT_WAITING, PGPROC::lwWaiting, PGPROC::lwWaitMode, PGPROC::lxid, max_wal_senders, MyProc, PGPROC::myProcLocks, MyProcNumber, MyProcPid, NUM_LOCK_PARTITIONS, on_shmem_exit(), OwnLatch(), PANIC, pg_atomic_read_u32(), pg_atomic_write_u64(), PGSemaphoreReset(), pgstat_set_wait_event_storage(), PGPROC::pid, PROC_IS_AUTOVACUUM, PROC_WAIT_STATUS_OK, PGPROC::procArrayGroupMember, PGPROC::procArrayGroupMemberXid, PGPROC::procArrayGroupNext, ProcGlobal, PGPROC::procgloballist, ProcKill(), PGPROC::procLatch, PGPROC::procNumber, ProcStructLock, PGPROC::recoveryConflictPending, RegisterPostmasterChildActive(), PGPROC::roleId, PGPROC::sem, set_spins_per_delay(), SpinLockAcquire, SpinLockRelease, PROC_HDR::spins_per_delay, PGPROC::statusFlags, SwitchToSharedLatch(), SYNC_REP_NOT_WAITING, PGPROC::syncRepLinks, PGPROC::syncRepState, PGPROC::tempNamespaceId, TRANSACTION_STATUS_IN_PROGRESS, PGPROC::vxid, PGPROC::wait_event_info, PGPROC::waitLock, PGPROC::waitLSN, PGPROC::waitProcLock, PGPROC::waitStart, PGPROC::waitStatus, PROC_HDR::walsenderFreeProcs, PGPROC::xid, and PGPROC::xmin.
Referenced by AutoVacWorkerMain(), BackendMain(), BackgroundWorkerMain(), BootstrapModeMain(), PostgresSingleUserMain(), and ReplSlotSyncWorkerMain().
void InitProcessPhase2 | ( | void | ) |
Definition at line 531 of file proc.c.
References Assert, MyProc, on_shmem_exit(), ProcArrayAdd(), and RemoveProcFromArray().
Referenced by InitPostgres().
void InitProcGlobal | ( | void | ) |
Definition at line 165 of file proc.c.
References PROC_HDR::allProcCount, PROC_HDR::allProcs, Assert, PROC_HDR::autovacFreeProcs, autovacuum_worker_slots, AuxiliaryProcs, PROC_HDR::bgworkerFreeProcs, PROC_HDR::checkpointerProc, PROC_HDR::clogGroupFirst, PGPROC::clogGroupNext, DEFAULT_SPINS_PER_DELAY, dlist_init(), dlist_push_tail(), FastPathLockGroupsPerBackend, FP_LOCK_SLOTS_PER_GROUP, PGPROC::fpInfoLock, PGPROC::fpLockBits, PGPROC::fpRelId, PROC_HDR::freeProcs, i, InitSharedLatch(), INVALID_PROC_NUMBER, j, PGPROC::links, PGPROC::lockGroupMembers, LWLockInitialize(), LWTRANCHE_LOCK_FASTPATH, max_prepared_xacts, max_worker_processes, MAXALIGN, MaxBackends, MaxConnections, MemSet, PGPROC::myProcLocks, NUM_AUXILIARY_PROCS, NUM_LOCK_PARTITIONS, NUM_SPECIAL_WORKER_PROCS, pg_atomic_init_u32(), pg_atomic_init_u64(), PG_USED_FOR_ASSERTS_ONLY, PGSemaphoreCreate(), PreparedXactProcs, PROC_HDR::procArrayGroupFirst, PGPROC::procArrayGroupNext, ProcGlobal, PGPROC::procgloballist, PGPROC::procLatch, ProcStructLock, PGPROC::sem, ShmemAlloc(), ShmemInitStruct(), SpinLockInit, PROC_HDR::spins_per_delay, PROC_HDR::startupBufferPinWaitBufId, PROC_HDR::statusFlags, PROC_HDR::subxidStates, PGPROC::waitStart, PROC_HDR::walsenderFreeProcs, PROC_HDR::walwriterProc, and PROC_HDR::xids.
Referenced by CreateOrAttachShmemStructs().
ProcWaitStatus JoinWaitQueue | ( | LOCALLOCK * | locallock, |
LockMethod | lockMethodTable, | ||
bool | dontWait | ||
) |
Definition at line 1089 of file proc.c.
References Assert, LockMethodData::conflictTab, dlist_iter::cur, dclist_foreach, dclist_insert_before(), dclist_is_empty(), dclist_push_tail(), dlist_container, dlist_foreach, GrantLock(), PROCLOCK::groupLeader, LOCALLOCK::hashcode, PGPROC::heldLocks, PROCLOCK::holdMask, PGPROC::links, links, LOCALLOCK::lock, LOCKBIT_ON, LockCheckConflicts(), PGPROC::lockGroupLeader, LockHashPartitionLock, LW_EXCLUSIVE, LWLockHeldByMeInMode(), LOCALLOCKTAG::mode, MyProc, PG_USED_FOR_ASSERTS_ONLY, PROC_WAIT_STATUS_ERROR, PROC_WAIT_STATUS_OK, PROC_WAIT_STATUS_WAITING, LOCALLOCK::proclock, LOCK::procLocks, RememberSimpleDeadLock(), LOCALLOCK::tag, PGPROC::waitLock, PGPROC::waitLockMode, LOCK::waitMask, PGPROC::waitProcLock, LOCK::waitProcs, and PGPROC::waitStatus.
Referenced by LockAcquireExtended().
void LockErrorCleanup | ( | void | ) |
Definition at line 764 of file proc.c.
References AbortStrongLockAcquire(), DEADLOCK_TIMEOUT, disable_timeouts(), dlist_node_is_detached(), GetAwaitedLock(), GrantAwaitedLock(), LOCALLOCK::hashcode, HOLD_INTERRUPTS, DisableTimeoutParams::id, DisableTimeoutParams::keep_indicator, PGPROC::links, LOCK_TIMEOUT, LockHashPartitionLock, LW_EXCLUSIVE, LWLockAcquire(), LWLockRelease(), MyProc, PROC_WAIT_STATUS_OK, RemoveFromWaitQueue(), RESUME_INTERRUPTS, and PGPROC::waitStatus.
Referenced by AbortSubTransaction(), AbortTransaction(), ProcessInterrupts(), ProcessRecoveryConflictInterrupt(), and ProcReleaseLocks().
int ProcGlobalSemas | ( | void | ) |
Definition at line 130 of file proc.c.
References MaxBackends, and NUM_AUXILIARY_PROCS.
Referenced by CalculateShmemSize().
Size ProcGlobalShmemSize | ( | void | ) |
Definition at line 97 of file proc.c.
References add_size(), FastPathLockGroupsPerBackend, FP_LOCK_SLOTS_PER_GROUP, max_prepared_xacts, MAXALIGN, MaxBackends, mul_size(), NUM_AUXILIARY_PROCS, ProcGlobal, size, PROC_HDR::statusFlags, PROC_HDR::subxidStates, and PROC_HDR::xids.
Referenced by CalculateShmemSize().
void ProcLockWakeup | ( | LockMethod | lockMethodTable, |
LOCK * | lock | ||
) |
Definition at line 1736 of file proc.c.
References LockMethodData::conflictTab, dlist_mutable_iter::cur, dclist_foreach_modify, dclist_is_empty(), dlist_container, GrantLock(), links, LOCKBIT_ON, LockCheckConflicts(), PROC_WAIT_STATUS_OK, ProcWakeup(), PGPROC::waitLockMode, PGPROC::waitProcLock, and LOCK::waitProcs.
Referenced by CleanUpLock(), and DeadLockCheck().
void ProcReleaseLocks | ( | bool | isCommit | ) |
Definition at line 840 of file proc.c.
References DEFAULT_LOCKMETHOD, LockErrorCleanup(), LockReleaseAll(), MyProc, and USER_LOCKMETHOD.
Referenced by ResourceOwnerReleaseInternal().
void ProcSendSignal | ( | ProcNumber | procNumber | ) |
Definition at line 1908 of file proc.c.
References PROC_HDR::allProcCount, PROC_HDR::allProcs, elog, ERROR, ProcGlobal, PGPROC::procLatch, and SetLatch().
Referenced by ReleasePredicateLocks(), and UnpinBufferNoOwner().
ProcWaitStatus ProcSleep | ( | LOCALLOCK * | locallock | ) |
Definition at line 1258 of file proc.c.
References AccessExclusiveLock, appendStringInfo(), Assert, buf, CHECK_FOR_INTERRUPTS, CheckDeadLock(), CheckRecoveryConflictDeadlock(), dlist_iter::cur, StringInfoData::data, deadlock_state, DEADLOCK_TIMEOUT, DeadlockTimeout, DEBUG1, EnableTimeoutParams::delay_ms, DescribeLockTag(), disable_timeout(), disable_timeouts(), dlist_container, dlist_foreach, DS_BLOCKED_BY_AUTOVACUUM, DS_HARD_DEADLOCK, DS_NO_DEADLOCK, DS_NOT_YET_CHECKED, DS_SOFT_DEADLOCK, enable_timeout_after(), enable_timeouts(), ereport, errdetail_log(), errdetail_log_plural(), errmsg(), errmsg_internal(), get_timeout_start_time(), GetAwaitedLock(), GetBlockingAutoVacuumPgproc(), GetCurrentTimestamp(), GetLockConflicts(), GetLockmodeName(), got_deadlock_timeout, LOCALLOCK::hashcode, EnableTimeoutParams::id, DisableTimeoutParams::id, InHotStandby, initStringInfo(), InRecovery, DisableTimeoutParams::keep_indicator, kill, LOCALLOCKTAG::lock, LOCALLOCK::lock, LOCK_TIMEOUT, LockHashPartitionLock, LOCKTAG::locktag_lockmethodid, LOCKTAG::locktag_type, LockTimeout, LOG, log_lock_waits, log_recovery_conflict_waits, LogRecoveryConflict(), LW_EXCLUSIVE, LW_SHARED, LWLockAcquire(), LWLockHeldByMe(), LWLockRelease(), message_level_is_interesting(), LOCALLOCKTAG::mode, MyLatch, MyProc, PROCLOCKTAG::myProc, MyProcPid, now(), pfree(), pg_atomic_write_u64(), PG_WAIT_LOCK, PGPROC::pgxactoff, PGPROC::pid, PROC_IS_AUTOVACUUM, PROC_VACUUM_FOR_WRAPAROUND, PROC_WAIT_STATUS_ERROR, PROC_WAIT_STATUS_OK, PROC_WAIT_STATUS_WAITING, ProcGlobal, LOCK::procLocks, PROCSIG_RECOVERY_CONFLICT_LOCK, RecoveryInProgress(), ResetLatch(), ResolveRecoveryConflictWithLock(), PROC_HDR::statusFlags, LOCK::tag, PROCLOCK::tag, LOCALLOCK::tag, TimestampDifference(), TimestampDifferenceExceeds(), TMPARAM_AFTER, EnableTimeoutParams::type, WaitLatch(), PGPROC::waitProcLock, PGPROC::waitStart, PGPROC::waitStatus, WARNING, WL_EXIT_ON_PM_DEATH, and WL_LATCH_SET.
Referenced by WaitOnLock().
void ProcWaitForSignal | ( | uint32 | wait_event_info | ) |
Definition at line 1896 of file proc.c.
References CHECK_FOR_INTERRUPTS, MyLatch, ResetLatch(), WaitLatch(), WL_EXIT_ON_PM_DEATH, and WL_LATCH_SET.
Referenced by GetSafeSnapshot(), LockBufferForCleanup(), ResolveRecoveryConflictWithBufferPin(), and ResolveRecoveryConflictWithLock().
void ProcWakeup | ( | PGPROC * | proc, |
ProcWaitStatus | waitStatus | ||
) |
Definition at line 1708 of file proc.c.
References Assert, dclist_delete_from_thoroughly(), dlist_node_is_detached(), PGPROC::links, MyProc, pg_atomic_write_u64(), PROC_WAIT_STATUS_WAITING, PGPROC::procLatch, SetLatch(), PGPROC::waitLock, PGPROC::waitProcLock, LOCK::waitProcs, PGPROC::waitStart, and PGPROC::waitStatus.
Referenced by ProcLockWakeup().
void SetStartupBufferPinWaitBufId | ( | int | bufid | ) |
Definition at line 705 of file proc.c.
References ProcGlobal, and PROC_HDR::startupBufferPinWaitBufId.
Referenced by LockBufferForCleanup().
|
extern |
Definition at line 57 of file proc.c.
Referenced by LockBufferForCleanup(), ProcSleep(), ResolveRecoveryConflictWithBufferPin(), ResolveRecoveryConflictWithLock(), and ResolveRecoveryConflictWithVirtualXIDs().
|
extern |
Definition at line 200 of file lock.c.
Referenced by GetLockStatusData(), InitializeFastPathLocks(), InitProcGlobal(), and ProcGlobalShmemSize().
|
extern |
Definition at line 60 of file proc.c.
Referenced by PostgresMain(), and ProcessInterrupts().
|
extern |
Definition at line 62 of file proc.c.
Referenced by PostgresMain(), and ProcessInterrupts().
|
extern |
Definition at line 59 of file proc.c.
Referenced by ProcSleep().
|
extern |
Definition at line 63 of file proc.c.
Referenced by ProcSleep().
|
extern |
Definition at line 66 of file proc.c.
Referenced by _brin_parallel_build_main(), _bt_parallel_build_main(), AbortTransaction(), AtEOSubXact_Namespace(), AtEOXact_Namespace(), AtEOXact_Snapshot(), attach_to_queues(), AutoVacWorkerMain(), AuxiliaryProcKill(), BaseInit(), BecomeLockGroupLeader(), BecomeLockGroupMember(), CheckDeadLock(), CommitTransaction(), ComputeXidHorizons(), ConditionVariableBroadcast(), consume_xids_common(), CountOtherDBBackends(), CreateReplicationSlot(), DefineIndex(), EndPrepare(), errdetail_abort(), exec_eval_simple_expr(), exec_simple_check_plan(), exec_stmt_call(), ExecParallelGetReceiver(), ExecParallelSetupTupleQueues(), ExportSnapshot(), FastPathGetRelationLockEntry(), FastPathGrantRelationLock(), FastPathUnGrantRelationLock(), FindLockCycleRecurseMember(), fmgr_sql(), get_cast_hashentry(), GetCurrentVirtualXIDs(), GetLockConflicts(), GetNewTransactionId(), GetSerializableTransactionSnapshotInt(), GetSnapshotData(), GetSnapshotDataReuse(), GetStableLatestTransactionId(), heap_inplace_update_and_unlock(), init_sql_fcache(), InitAuxiliaryProcess(), InitBufferManagerAccess(), InitializeParallelDSM(), InitPostgres(), InitProcess(), InitProcessPhase2(), InitRecoveryTransactionEnvironment(), InitTempTableNamespace(), JoinWaitQueue(), lock_and_open_sequence(), LockAcquireExtended(), LockCheckConflicts(), LockErrorCleanup(), LockRelease(), LockReleaseAll(), log_status_format(), logicalrep_worker_attach(), LWLockAcquire(), LWLockAcquireOrWait(), LWLockAttemptLock(), LWLockDequeueSelf(), LWLockQueueSelf(), LWLockWaitForVar(), MarkAsPreparingGuts(), MarkBufferDirtyHint(), MinimumActiveBackends(), pa_setup_dsm(), parallel_vacuum_main(), ParallelApplyWorkerMain(), ParallelWorkerMain(), pg_truncate_visibility_map(), pgstat_report_activity(), PhysicalReplicationSlotNewXmin(), PostPrepare_Locks(), PrepareTransaction(), ProcArrayGroupClearXid(), ProcArrayInstallImportedXmin(), ProcArrayInstallRestoredXmin(), ProcessRecoveryConflictInterrupt(), ProcessStandbyHSFeedbackMessage(), ProcKill(), ProcReleaseLocks(), ProcSleep(), ProcWakeup(), RecordTransactionCommit(), RecordTransactionCommitPrepared(), ReinitializeParallelDSM(), RelationTruncate(), RemoveProcFromArray(), ReplicationSlotRelease(), ResolveRecoveryConflictWithLock(), set_indexsafe_procflags(), SetAuthenticatedUserId(), setup_dynamic_shared_memory(), shm_mq_attach(), shm_mq_detach_internal(), shm_mq_receive(), shm_mq_sendv(), shm_mq_wait_for_attach(), smgr_bulk_finish(), SnapBuildInitialSnapshot(), SnapshotResetXmin(), StartTransaction(), StartupDecodingContext(), SwitchBackToLocalLatch(), SwitchToSharedLatch(), SyncRepCancelWait(), SyncRepCleanupAtProcExit(), SyncRepQueueInsert(), SyncRepWaitForLSN(), TerminateOtherDBBackends(), TransactionGroupUpdateXidStatus(), TransactionIdIsInProgress(), TransactionIdSetPageStatus(), TruncateMultiXact(), vacuum_rel(), validate_sync_standby_slots(), VirtualXactLockTableCleanup(), VirtualXactLockTableInsert(), WaitXLogInsertionsToFinish(), write_csvlog(), write_jsonlog(), XidCacheRemoveRunningXids(), and XLogSaveBufferForHint().
|
extern |
Definition at line 80 of file proc.c.
Referenced by InitProcGlobal(), and TwoPhaseShmemInit().
|
extern |
Definition at line 78 of file proc.c.
Referenced by AuxiliaryProcKill(), BackendXidGetPid(), CheckpointerMain(), ComputeXidHorizons(), CountOtherDBBackends(), FastPathTransferRelationLocks(), ForwardSyncRequest(), GetCurrentVirtualXIDs(), GetLockConflicts(), GetLockStatusData(), GetNewTransactionId(), GetOldestActiveTransactionId(), GetOldestSafeDecodingTransactionId(), GetRunningTransactionData(), GetSnapshotData(), GetStartupBufferPinWaitBufId(), HaveNFreeProcs(), InitAuxiliaryProcess(), InitProcess(), InitProcGlobal(), PgArchWakeup(), ProcArrayAdd(), ProcArrayClearTransaction(), ProcArrayEndTransaction(), ProcArrayEndTransactionInternal(), ProcArrayGroupClearXid(), ProcArrayInstallImportedXmin(), ProcArrayInstallRestoredXmin(), ProcArrayRemove(), ProcArrayShmemInit(), ProcGlobalShmemSize(), ProcKill(), ProcNumberGetProc(), ProcNumberGetTransactionIds(), ProcSendSignal(), ProcSleep(), ReplicationSlotRelease(), RequestCheckpoint(), set_indexsafe_procflags(), SetStartupBufferPinWaitBufId(), StartupDecodingContext(), StrategyGetBuffer(), TransactionGroupUpdateXidStatus(), TransactionIdIsActive(), TransactionIdIsInProgress(), vacuum_rel(), WakeupWalSummarizer(), WalWriterMain(), XidCacheRemoveRunningXids(), and XLogSetAsyncXactLSN().
|
extern |
Definition at line 58 of file proc.c.
Referenced by enable_statement_timeout().
|
extern |
Definition at line 61 of file proc.c.
Referenced by AbortTransaction(), CommitTransaction(), enable_statement_timeout(), PostgresMain(), PrepareTransaction(), ProcessInterrupts(), and StartTransaction().