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]