aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2020-06-08 15:25:49 -0700
committerAndres Freund <andres@anarazel.de>2020-06-17 12:51:09 -0700
commit276bdc93924afb2bd793627f49a9e7edd4172b63 (patch)
tree909bbebc1aaad0a947f877a52ecd9f02f0a3b78e /src/backend
parent09bff91b316e90bf7f523593c1e8000c772cbe52 (diff)
downloadpostgresql-276bdc93924afb2bd793627f49a9e7edd4172b63.tar.gz
postgresql-276bdc93924afb2bd793627f49a9e7edd4172b63.zip
spinlock emulation: Fix bug when more than INT_MAX spinlocks are initialized.
Once the counter goes negative we ended up with spinlocks that errored out on first use (due to check in tas_sema). Author: Andres Freund Reviewed-By: Robert Haas Discussion: https://postgr.es/m/20200606023103.avzrctgv7476xj7i@alap3.anarazel.de Backpatch: 9.5-
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/storage/lmgr/spin.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/storage/lmgr/spin.c b/src/backend/storage/lmgr/spin.c
index 4d2a4c6641a..753943e46d6 100644
--- a/src/backend/storage/lmgr/spin.c
+++ b/src/backend/storage/lmgr/spin.c
@@ -106,7 +106,7 @@ SpinlockSemaInit(void)
void
s_init_lock_sema(volatile slock_t *lock, bool nested)
{
- static int counter = 0;
+ static uint32 counter = 0;
*lock = ((++counter) % NUM_SPINLOCK_SEMAPHORES) + 1;
}