mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
Refactor postmaster child process launching
Introduce new postmaster_child_launch() function that deals with the differences in EXEC_BACKEND mode. Refactor the mechanism of passing information from the parent to child process. Instead of using different command-line arguments when launching the child process in EXEC_BACKEND mode, pass a variable-length blob of startup data along with all the global variables. The contents of that blob depend on the kind of child process being launched. In !EXEC_BACKEND mode, we use the same blob, but it's simply inherited from the parent to child process. Reviewed-by: Tristan Partin, Andres Freund Discussion: https://www.postgresql.org/message-id/7a59b073-5b5b-151e-7ed3-8b01ff7ce9ef@iki.fi
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include "common/blkreftable.h"
|
||||
#include "libpq/pqsignal.h"
|
||||
#include "miscadmin.h"
|
||||
#include "postmaster/auxprocess.h"
|
||||
#include "postmaster/interrupt.h"
|
||||
#include "postmaster/walsummarizer.h"
|
||||
#include "replication/walreceiver.h"
|
||||
@@ -206,7 +207,7 @@ WalSummarizerShmemInit(void)
|
||||
* Entry point for walsummarizer process.
|
||||
*/
|
||||
void
|
||||
WalSummarizerMain(void)
|
||||
WalSummarizerMain(char *startup_data, size_t startup_data_len)
|
||||
{
|
||||
sigjmp_buf local_sigjmp_buf;
|
||||
MemoryContext context;
|
||||
@@ -228,6 +229,11 @@ WalSummarizerMain(void)
|
||||
XLogRecPtr switch_lsn = InvalidXLogRecPtr;
|
||||
TimeLineID switch_tli = 0;
|
||||
|
||||
Assert(startup_data_len == 0);
|
||||
|
||||
MyBackendType = B_WAL_SUMMARIZER;
|
||||
AuxiliaryProcessMainCommon();
|
||||
|
||||
ereport(DEBUG1,
|
||||
(errmsg_internal("WAL summarizer started")));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user