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
REL_17_STABLE
Nathan Bossart 2 days ago
parent 3e6dfcfb05
commit 778f391c26
  1. 11
      doc/src/sgml/xfunc.sgml

@ -3448,11 +3448,14 @@ LWLockRelease(AddinShmemInitLock);
</programlisting> </programlisting>
<literal>shmem_startup_hook</literal> provides a convenient place for the <literal>shmem_startup_hook</literal> provides a convenient place for the
initialization code, but it is not strictly required that all such code initialization code, but it is not strictly required that all such code
be placed in this hook. Each backend will execute the registered be placed in this hook. On Windows (and anywhere else where
<literal>shmem_startup_hook</literal> shortly after it attaches to shared <literal>EXEC_BACKEND</literal> is defined), each backend executes the
memory. Note that add-ins should still acquire 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 <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>
<para> <para>

Loading…
Cancel
Save