mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user