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);