PostgreSQL Source Code git master
Loading...
Searching...
No Matches
auxprocess.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void AuxiliaryProcessMainCommon (void)
 

Function Documentation

◆ AuxiliaryProcessMainCommon()

void AuxiliaryProcessMainCommon ( void  )
extern

Definition at line 41 of file auxprocess.c.

42{
44
45 /* Release postmaster's working memory context */
47 {
50 }
51
53
55
57
58 /*
59 * As an auxiliary process, we aren't going to do the full InitPostgres
60 * pushups, but there are a couple of things that need to get lit up even
61 * in an auxiliary process.
62 */
63
64 /*
65 * Create a PGPROC so we can use LWLocks and access shared memory.
66 */
68
69 BaseInit();
70
72
73 /*
74 * Initialize a local cache of the data_checksum_version, to be updated by
75 * the procsignal-based barriers.
76 *
77 * This intentionally happens after initializing the procsignal, otherwise
78 * we might miss a state change. This means we can get a barrier for the
79 * state we've just initialized - but it can happen only once.
80 *
81 * The postmaster (which is what gets forked into the new child process)
82 * does not handle barriers, therefore it may not have the current value
83 * of LocalDataChecksumVersion value (it'll have the value read from the
84 * control file, which may be arbitrarily old).
85 *
86 * NB: Even if the postmaster handled barriers, the value might still be
87 * stale, as it might have changed after this process forked.
88 */
90
91 /*
92 * Auxiliary processes don't run transactions, but they may need a
93 * resource owner anyway to manage buffer pins acquired outside
94 * transactions (and, perhaps, other things in future).
95 */
97
98
99 /* Initialize backend status information */
103
104 /* register a before-shutdown callback for LWLock cleanup */
106
108}
static void ShutdownAuxiliaryProcess(int code, Datum arg)
Definition auxprocess.c:118
void pgstat_bestart_initial(void)
void pgstat_beinit(void)
void pgstat_bestart_final(void)
#define Assert(condition)
Definition c.h:943
bool IsUnderPostmaster
Definition globals.c:122
void before_shmem_exit(pg_on_exit_callback function, Datum arg)
Definition ipc.c:344
MemoryContext PostmasterContext
Definition mcxt.c:168
void MemoryContextDelete(MemoryContext context)
Definition mcxt.c:472
@ NormalProcessing
Definition miscadmin.h:490
@ InitProcessing
Definition miscadmin.h:489
#define GetProcessingMode()
Definition miscadmin.h:499
#define SetProcessingMode(mode)
Definition miscadmin.h:501
bool IgnoreSystemIndexes
Definition miscinit.c:82
void BaseInit(void)
Definition postinit.c:616
static int fb(int x)
void ProcSignalInit(const uint8 *cancel_key, int cancel_key_len)
Definition procsignal.c:170
void init_ps_display(const char *fixed_part)
Definition ps_status.c:286
void CreateAuxProcessResourceOwner(void)
Definition resowner.c:996
void InitAuxiliaryProcess(void)
Definition proc.c:618
void InitLocalDataChecksumState(void)
Definition xlog.c:4961

References Assert, BaseInit(), before_shmem_exit(), CreateAuxProcessResourceOwner(), fb(), GetProcessingMode, IgnoreSystemIndexes, init_ps_display(), InitAuxiliaryProcess(), InitLocalDataChecksumState(), InitProcessing, IsUnderPostmaster, MemoryContextDelete(), NormalProcessing, pgstat_beinit(), pgstat_bestart_final(), pgstat_bestart_initial(), PostmasterContext, ProcSignalInit(), SetProcessingMode, and ShutdownAuxiliaryProcess().

Referenced by BackgroundWriterMain(), CheckpointerMain(), IoWorkerMain(), PgArchiverMain(), StartupProcessMain(), WalReceiverMain(), WalSummarizerMain(), and WalWriterMain().