Skip to content

Commit 4d4ca24

Browse files
committed
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-
1 parent fd49d53 commit 4d4ca24

File tree

1 file changed

+1
-1
lines changed
  • src/backend/storage/lmgr

1 file changed

+1
-1
lines changed

src/backend/storage/lmgr/spin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ SpinlockSemaInit(void)
106106
void
107107
s_init_lock_sema(volatile slock_t *lock, bool nested)
108108
{
109-
static int counter = 0;
109+
static uint32 counter = 0;
110110

111111
*lock = ((++counter) % NUM_SPINLOCK_SEMAPHORES) + 1;
112112
}

0 commit comments

Comments
 (0)