diff options
author | Tomas Vondra <tomas.vondra@postgresql.org> | 2025-03-04 18:33:09 +0100 |
---|---|---|
committer | Tomas Vondra <tomas.vondra@postgresql.org> | 2025-03-04 18:33:12 +0100 |
commit | c878de1db438f9f4747374c286d4319cc527eec2 (patch) | |
tree | 0444c92e7f15016d25f4ade8b815ccd0228c6f3f /src/backend/storage/lmgr/proc.c | |
parent | 91ecb5e0bc7f8373ec9ff7d188bfd0d45f13a333 (diff) |
Make FP_LOCK_SLOTS_PER_BACKEND look like a function
The FP_LOCK_SLOTS_PER_BACKEND macro looks like a constant, but it
depends on the max_locks_per_transaction GUC, and thus can change. This
is non-obvious and confusing, so make it look more like a function by
renaming it to FastPathLockSlotsPerBackend().
While at it, use the macro when initializing fast-path shared memory,
instead of using the formula.
Reported-by: Andres Freund
Discussion: https://postgr.es/m/ffiwtzc6vedo6wb4gbwelon5nefqg675t5c7an2ta7pcz646cg%40qwmkdb3l4ett
Diffstat (limited to 'src/backend/storage/lmgr/proc.c')
-rw-r--r-- | src/backend/storage/lmgr/proc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 49204f91a20..749a79d48ef 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -116,7 +116,7 @@ ProcGlobalShmemSize(void) * nicely aligned in each backend. */ fpLockBitsSize = MAXALIGN(FastPathLockGroupsPerBackend * sizeof(uint64)); - fpRelIdSize = MAXALIGN(FastPathLockGroupsPerBackend * sizeof(Oid) * FP_LOCK_SLOTS_PER_GROUP); + fpRelIdSize = MAXALIGN(FastPathLockSlotsPerBackend() * sizeof(Oid)); size = add_size(size, mul_size(TotalProcs, (fpLockBitsSize + fpRelIdSize))); @@ -231,7 +231,7 @@ InitProcGlobal(void) * shared memory and then divide that between backends. */ fpLockBitsSize = MAXALIGN(FastPathLockGroupsPerBackend * sizeof(uint64)); - fpRelIdSize = MAXALIGN(FastPathLockGroupsPerBackend * sizeof(Oid) * FP_LOCK_SLOTS_PER_GROUP); + fpRelIdSize = MAXALIGN(FastPathLockSlotsPerBackend() * sizeof(Oid)); fpPtr = ShmemAlloc(TotalProcs * (fpLockBitsSize + fpRelIdSize)); MemSet(fpPtr, 0, TotalProcs * (fpLockBitsSize + fpRelIdSize)); |