Add comment to explain why PGReserveSemaphores() is called early
authorHeikki Linnakangas <[email protected]>
Thu, 6 Nov 2025 10:50:10 +0000 (12:50 +0200)
committerHeikki Linnakangas <[email protected]>
Thu, 6 Nov 2025 12:20:48 +0000 (14:20 +0200)
Before commit e25626677f, PGReserveSemaphores() had to be called
before SpinlockSemaInit() because spinlocks were implemented using
semaphores on some platforms (--disable-spinlocks). Add a comment
explaining that.

Author: Ashutosh Bapat <[email protected]>
Discussion: https://www.postgresql.org/message-id/CAExHW5seSZpPx-znjidVZNzdagGHOk06F+Ds88MpPUbxd1kTaA@mail.gmail.com
Backpatch-to: 18
src/backend/storage/ipc/ipci.c

index 10ffce8d1745a14f33e95d89ccf446b452697740..19f9c77448885de5fcff1a345fee7e7f5c990fb8 100644 (file)
@@ -227,7 +227,9 @@ CreateSharedMemoryAndSemaphores(void)
    InitShmemAccess(seghdr);
 
    /*
-    * Create semaphores
+    * Create semaphores.  (This is done here for historical reasons.  We used
+    * to support emulating spinlocks with semaphores, which required
+    * initializing semaphores early.)
     */
    PGReserveSemaphores(numSemas);