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
This commit is contained in:
parent
881455e57b
commit
8f8bcb8883
@ -672,13 +672,11 @@ SubPostmasterMain(int argc, char *argv[])
|
||||
* 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;
|
||||
|
||||
#ifndef WIN32
|
||||
#define write_inheritable_socket(dest, src, childpid) ((*(dest) = (src)), true)
|
||||
|
@ -179,7 +179,7 @@ typedef struct bkend
|
||||
static dlist_head BackendList = DLIST_STATIC_INIT(BackendList);
|
||||
|
||||
#ifdef EXEC_BACKEND
|
||||
Backend *ShmemBackendArray;
|
||||
NON_EXEC_STATIC Backend *ShmemBackendArray;
|
||||
#endif
|
||||
|
||||
BackgroundWorker *MyBgworkerEntry = NULL;
|
||||
|
@ -75,8 +75,6 @@ char *Log_filename = NULL;
|
||||
bool Log_truncate_on_rotation = false;
|
||||
int Log_file_mode = S_IRUSR | S_IWUSR;
|
||||
|
||||
extern bool redirection_done;
|
||||
|
||||
/*
|
||||
* Private state
|
||||
*/
|
||||
|
@ -91,9 +91,6 @@
|
||||
#endif
|
||||
|
||||
|
||||
/* We use the ShmemLock spinlock to protect LWLockCounter */
|
||||
extern slock_t *ShmemLock;
|
||||
|
||||
#define LW_FLAG_HAS_WAITERS ((uint32) 1 << 30)
|
||||
#define LW_FLAG_RELEASE_OK ((uint32) 1 << 29)
|
||||
#define LW_FLAG_LOCKED ((uint32) 1 << 28)
|
||||
@ -609,6 +606,7 @@ LWLockNewTrancheId(void)
|
||||
int *LWLockCounter;
|
||||
|
||||
LWLockCounter = (int *) ((char *) MainLWLockArray - sizeof(int));
|
||||
/* We use the ShmemLock spinlock to protect LWLockCounter */
|
||||
SpinLockAcquire(ShmemLock);
|
||||
result = (*LWLockCounter)++;
|
||||
SpinLockRelease(ShmemLock);
|
||||
|
@ -95,8 +95,6 @@ ErrorContextCallback *error_context_stack = NULL;
|
||||
|
||||
sigjmp_buf *PG_exception_stack = NULL;
|
||||
|
||||
extern bool redirection_done;
|
||||
|
||||
/*
|
||||
* Hook for intercepting messages before they are sent to the server log.
|
||||
* Note that the hook will not get called for messages that are suppressed
|
||||
|
@ -52,6 +52,7 @@ extern PGDLLIMPORT int postmaster_alive_fds[2];
|
||||
|
||||
extern PGDLLIMPORT const char *progname;
|
||||
|
||||
extern PGDLLIMPORT bool redirection_done;
|
||||
extern PGDLLIMPORT bool LoadedSSL;
|
||||
|
||||
extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
||||
|
@ -21,10 +21,12 @@
|
||||
#ifndef SHMEM_H
|
||||
#define SHMEM_H
|
||||
|
||||
#include "storage/spin.h"
|
||||
#include "utils/hsearch.h"
|
||||
|
||||
|
||||
/* shmem.c */
|
||||
extern PGDLLIMPORT slock_t *ShmemLock;
|
||||
extern void InitShmemAccess(void *seghdr);
|
||||
extern void InitShmemAllocation(void);
|
||||
extern void *ShmemAlloc(Size size);
|
||||
|
Loading…
x
Reference in New Issue
Block a user