aboutsummaryrefslogtreecommitdiff
path: root/src/backend/postmaster/auxprocess.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/postmaster/auxprocess.c')
-rw-r--r--src/backend/postmaster/auxprocess.c53
1 files changed, 11 insertions, 42 deletions
diff --git a/src/backend/postmaster/auxprocess.c b/src/backend/postmaster/auxprocess.c
index 2c86abdb719..78f4263eeb1 100644
--- a/src/backend/postmaster/auxprocess.c
+++ b/src/backend/postmaster/auxprocess.c
@@ -27,6 +27,7 @@
#include "storage/ipc.h"
#include "storage/proc.h"
#include "storage/procsignal.h"
+#include "utils/memutils.h"
#include "utils/ps_status.h"
@@ -34,19 +35,22 @@ static void ShutdownAuxiliaryProcess(int code, Datum arg);
/*
- * AuxiliaryProcessMain
+ * AuxiliaryProcessMainCommon
*
- * The main entry point for auxiliary processes, such as the bgwriter,
- * walwriter, walreceiver, bootstrapper and the shared memory checker code.
- *
- * This code is here just because of historical reasons.
+ * Common initialization code for auxiliary processes, such as the bgwriter,
+ * walwriter, walreceiver, and the startup process.
*/
void
-AuxiliaryProcessMain(BackendType auxtype)
+AuxiliaryProcessMainCommon(void)
{
Assert(IsUnderPostmaster);
- MyBackendType = auxtype;
+ /* Release postmaster's working memory context */
+ if (PostmasterContext)
+ {
+ MemoryContextDelete(PostmasterContext);
+ PostmasterContext = NULL;
+ }
init_ps_display(NULL);
@@ -84,41 +88,6 @@ AuxiliaryProcessMain(BackendType auxtype)
before_shmem_exit(ShutdownAuxiliaryProcess, 0);
SetProcessingMode(NormalProcessing);
-
- switch (MyBackendType)
- {
- case B_STARTUP:
- StartupProcessMain();
- proc_exit(1);
-
- case B_ARCHIVER:
- PgArchiverMain();
- proc_exit(1);
-
- case B_BG_WRITER:
- BackgroundWriterMain();
- proc_exit(1);
-
- case B_CHECKPOINTER:
- CheckpointerMain();
- proc_exit(1);
-
- case B_WAL_WRITER:
- WalWriterMain();
- proc_exit(1);
-
- case B_WAL_RECEIVER:
- WalReceiverMain();
- proc_exit(1);
-
- case B_WAL_SUMMARIZER:
- WalSummarizerMain();
- proc_exit(1);
-
- default:
- elog(PANIC, "unrecognized process type: %d", (int) MyBackendType);
- proc_exit(1);
- }
}
/*