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_18_STABLE
Nathan Bossart 2 days ago
parent f256a7bba7
commit a80b7a0547
  1. 11
      doc/src/sgml/xfunc.sgml

@ -3669,11 +3669,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