Improve some global variable declarations
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 2 Jul 2024 04:55:56 +0000 (06:55 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 2 Jul 2024 05:26:22 +0000 (07:26 +0200)
commit8f8bcb88833eecfffbbb0d048ff0b6c33e64f7ce
tree63482c055847034d86e005145280bb33a38495e6
parent881455e57b1210174b89bb3b13cad6b30b236d50
Improve some global variable declarations

We have in launch_backend.c:

    /*
     * The following need to be available to the save/restore_backend_variables
     * functions.  They are marked NON_EXEC_STATIC in their home modules.
     */
    extern slock_t *ShmemLock;
    extern slock_t *ProcStructLock;
    extern PGPROC *AuxiliaryProcs;
    extern PMSignalData *PMSignalState;
    extern pg_time_t first_syslogger_file_time;
    extern struct bkend *ShmemBackendArray;
    extern bool redirection_done;

That comment is not completely true: ShmemLock, ShmemBackendArray, and
redirection_done are not in fact NON_EXEC_STATIC.  ShmemLock once was,
but was then needed elsewhere.  ShmemBackendArray was static inside
postmaster.c before launch_backend.c was created.  redirection_done
was never static.

This patch moves the declaration of ShmemLock and redirection_done to
a header file.

ShmemBackendArray gets a NON_EXEC_STATIC.  This doesn't make a
difference, since it only exists if EXEC_BACKEND anyway, but it makes
it consistent.

After that, the comment is now correct.

Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://www.postgresql.org/message-id/flat/e0a62134-83da-4ba4-8cdb-ceb0111c95ce@eisentraut.org
src/backend/postmaster/launch_backend.c
src/backend/postmaster/postmaster.c
src/backend/postmaster/syslogger.c
src/backend/storage/lmgr/lwlock.c
src/backend/utils/error/elog.c
src/include/postmaster/postmaster.h
src/include/storage/shmem.h