postgres.git / summary / log / commit / refs
commit a80b7a0547da0dc1dfff5df96b709a9e0321252b
Author: Nathan Bossart <nathan@postgresql.org>
Date: Tue Sep 09 19:35:30 2025 +0000
First released in: 17.7, 18.0
Fix documentation for shmem_startup_hook.
This section claims that each backend executes the
shmem_startup_hook shortly after attaching to shared memory, which
is true for EXEC_BACKEND builds, but not for others. This commit
adds this important detail.
Oversight in commit 964152c476.
Reported-by: Sami Imseih <samimseih@gmail.com>
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Discussion: https://postgr.es/m/CAA5RZ0vEGT1eigGbVt604LkXP6mUPMwPMxQoRCbFny44w%2B9EUQ%40mail.gmail.com
Backpatch-through: 17
doc/src/sgml/xfunc.sgml | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index 2d81afce8cb..1eb5abffd8f 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -3669,11 +3669,14 @@ LWLockRelease(AddinShmemInitLock);
</programlisting>
<literal>shmem_startup_hook</literal> provides a convenient place for the
initialization code, but it is not strictly required that all such code
- be placed in this hook. Each backend will execute the registered
- <literal>shmem_startup_hook</literal> shortly after it attaches to shared
- memory. Note that add-ins should still acquire
+ be placed in this hook. On Windows (and anywhere else where
+ <literal>EXEC_BACKEND</literal> is defined), each backend executes the
+ registered <literal>shmem_startup_hook</literal> shortly after it
+ attaches to shared memory, so add-ins should still acquire
<function>AddinShmemInitLock</function> within this hook, as shown in the
- example above.
+ example above. On other platforms, only the postmaster process executes
+ the <literal>shmem_startup_hook</literal>, and each backend automatically
+ inherits the pointers to shared memory.
</para>
<para>
[parent: f256a7bba728]