diff options
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/main/main.c | 17 | ||||
| -rw-r--r-- | src/backend/postmaster/autovacuum.c | 4 | ||||
| -rw-r--r-- | src/backend/postmaster/pgarch.c | 2 | ||||
| -rw-r--r-- | src/backend/postmaster/pgstat.c | 2 | ||||
| -rw-r--r-- | src/backend/postmaster/postmaster.c | 38 | ||||
| -rw-r--r-- | src/backend/postmaster/syslogger.c | 1 | ||||
| -rw-r--r-- | src/backend/replication/walsender.c | 10 | ||||
| -rw-r--r-- | src/backend/tcop/postgres.c | 9 | ||||
| -rw-r--r-- | src/backend/utils/misc/help_config.c | 4 |
9 files changed, 42 insertions, 45 deletions
diff --git a/src/backend/main/main.c b/src/backend/main/main.c index c7d48e95ad..33c5a0a4e6 100644 --- a/src/backend/main/main.c +++ b/src/backend/main/main.c @@ -173,7 +173,7 @@ main(int argc, char *argv[]) #ifdef EXEC_BACKEND if (argc > 1 && strncmp(argv[1], "--fork", 6) == 0) - exit(SubPostmasterMain(argc, argv)); + SubPostmasterMain(argc, argv); /* does not return */ #endif #ifdef WIN32 @@ -189,14 +189,13 @@ main(int argc, char *argv[]) if (argc > 1 && strcmp(argv[1], "--boot") == 0) AuxiliaryProcessMain(argc, argv); /* does not return */ - - if (argc > 1 && strcmp(argv[1], "--describe-config") == 0) - exit(GucInfoMain()); - - if (argc > 1 && strcmp(argv[1], "--single") == 0) - exit(PostgresMain(argc, argv, get_current_username(progname))); - - exit(PostmasterMain(argc, argv)); + else if (argc > 1 && strcmp(argv[1], "--describe-config") == 0) + GucInfoMain(); /* does not return */ + else if (argc > 1 && strcmp(argv[1], "--single") == 0) + PostgresMain(argc, argv, get_current_username(progname)); /* does not return */ + else + PostmasterMain(argc, argv); /* does not return */ + abort(); /* should not get here */ } diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 1cfac9e80b..dade5cc3c0 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -269,8 +269,8 @@ int AutovacuumLauncherPid = 0; static pid_t avlauncher_forkexec(void); static pid_t avworker_forkexec(void); #endif -NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]); -NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]); +NON_EXEC_STATIC void AutoVacWorkerMain(int argc, char *argv[]) __attribute__((noreturn)); +NON_EXEC_STATIC void AutoVacLauncherMain(int argc, char *argv[]) __attribute__((noreturn)); static Oid do_start_worker(void); static void launcher_determine_sleep(bool canlaunch, bool recursing, diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c index 5c43cdde65..d5d8be0587 100644 --- a/src/backend/postmaster/pgarch.c +++ b/src/backend/postmaster/pgarch.c @@ -101,7 +101,7 @@ static Latch mainloop_latch; static pid_t pgarch_forkexec(void); #endif -NON_EXEC_STATIC void PgArchiverMain(int argc, char *argv[]); +NON_EXEC_STATIC void PgArchiverMain(int argc, char *argv[]) __attribute__((noreturn)); static void pgarch_exit(SIGNAL_ARGS); static void ArchSigHupHandler(SIGNAL_ARGS); static void ArchSigTermHandler(SIGNAL_ARGS); diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 243dc8bc53..2371cd2ff9 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -243,7 +243,7 @@ static instr_time total_func_time; static pid_t pgstat_forkexec(void); #endif -NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]); +NON_EXEC_STATIC void PgstatCollectorMain(int argc, char *argv[]) __attribute__((noreturn)); static void pgstat_exit(SIGNAL_ARGS); static void pgstat_beshutdown_hook(int code, Datum arg); static void pgstat_sighup_handler(SIGNAL_ARGS); diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index eeea933b19..913734fbd0 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -343,8 +343,8 @@ static void LogChildExit(int lev, const char *procname, int pid, int exitstatus); static void PostmasterStateMachine(void); static void BackendInitialize(Port *port); -static int BackendRun(Port *port); -static void ExitPostmaster(int status); +static void BackendRun(Port *port) __attribute__((noreturn)); +static void ExitPostmaster(int status) __attribute__((noreturn)); static int ServerLoop(void); static int BackendStartup(Port *port); static int ProcessStartupPacket(Port *port, bool SSLdone); @@ -491,7 +491,7 @@ HANDLE PostmasterHandle; /* * Postmaster main entry point */ -int +void PostmasterMain(int argc, char *argv[]) { int opt; @@ -1125,7 +1125,7 @@ PostmasterMain(int argc, char *argv[]) */ ExitPostmaster(status != STATUS_OK); - return 0; /* not reached */ + abort(); /* not reached */ } @@ -3295,7 +3295,7 @@ BackendStartup(Port *port) BackendInitialize(port); /* And run the backend */ - proc_exit(BackendRun(port)); + BackendRun(port); } #endif /* EXEC_BACKEND */ @@ -3539,7 +3539,7 @@ BackendInitialize(Port *port) * Shouldn't return at all. * If PostgresMain() fails, return status. */ -static int +static void BackendRun(Port *port) { char **av; @@ -3610,7 +3610,7 @@ BackendRun(Port *port) */ MemoryContextSwitchTo(TopMemoryContext); - return (PostgresMain(ac, av, port->user_name)); + PostgresMain(ac, av, port->user_name); } @@ -3960,7 +3960,7 @@ internal_forkexec(int argc, char *argv[], Port *port) * have been inherited by fork() on Unix. Remaining arguments go to the * subprocess FooMain() routine. */ -int +void SubPostmasterMain(int argc, char *argv[]) { Port port; @@ -4111,7 +4111,7 @@ SubPostmasterMain(int argc, char *argv[]) CreateSharedMemoryAndSemaphores(false, 0); /* And run the backend */ - proc_exit(BackendRun(&port)); + BackendRun(&port); /* does not return */ } if (strcmp(argv[1], "--forkboot") == 0) { @@ -4127,8 +4127,7 @@ SubPostmasterMain(int argc, char *argv[]) /* Attach process to shared data structures */ CreateSharedMemoryAndSemaphores(false, 0); - AuxiliaryProcessMain(argc - 2, argv + 2); - proc_exit(0); + AuxiliaryProcessMain(argc - 2, argv + 2); /* does not return */ } if (strcmp(argv[1], "--forkavlauncher") == 0) { @@ -4144,8 +4143,7 @@ SubPostmasterMain(int argc, char *argv[]) /* Attach process to shared data structures */ CreateSharedMemoryAndSemaphores(false, 0); - AutoVacLauncherMain(argc - 2, argv + 2); - proc_exit(0); + AutoVacLauncherMain(argc - 2, argv + 2); /* does not return */ } if (strcmp(argv[1], "--forkavworker") == 0) { @@ -4161,8 +4159,7 @@ SubPostmasterMain(int argc, char *argv[]) /* Attach process to shared data structures */ CreateSharedMemoryAndSemaphores(false, 0); - AutoVacWorkerMain(argc - 2, argv + 2); - proc_exit(0); + AutoVacWorkerMain(argc - 2, argv + 2); /* does not return */ } if (strcmp(argv[1], "--forkarch") == 0) { @@ -4171,8 +4168,7 @@ SubPostmasterMain(int argc, char *argv[]) /* Do not want to attach to shared memory */ - PgArchiverMain(argc, argv); - proc_exit(0); + PgArchiverMain(argc, argv); /* does not return */ } if (strcmp(argv[1], "--forkcol") == 0) { @@ -4181,8 +4177,7 @@ SubPostmasterMain(int argc, char *argv[]) /* Do not want to attach to shared memory */ - PgstatCollectorMain(argc, argv); - proc_exit(0); + PgstatCollectorMain(argc, argv); /* does not return */ } if (strcmp(argv[1], "--forklog") == 0) { @@ -4191,11 +4186,10 @@ SubPostmasterMain(int argc, char *argv[]) /* Do not want to attach to shared memory */ - SysLoggerMain(argc, argv); - proc_exit(0); + SysLoggerMain(argc, argv); /* does not return */ } - return 1; /* shouldn't get here */ + abort(); /* shouldn't get here */ } #endif /* EXEC_BACKEND */ diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index 25d095b158..919cc49fa9 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -139,6 +139,7 @@ static volatile sig_atomic_t rotation_requested = false; static pid_t syslogger_forkexec(void); static void syslogger_parseArgs(int argc, char *argv[]); #endif +NON_EXEC_STATIC void SysLoggerMain(int argc, char *argv[]) __attribute__((noreturn)); static void process_pipe_input(char *logbuffer, int *bytes_in_logbuffer); static void flush_pipe_input(char *logbuffer, int *bytes_in_logbuffer); static void open_csvlogfile(void); diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index d5cb778f7e..616d4e73e3 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -120,7 +120,7 @@ static void WalSndLastCycleHandler(SIGNAL_ARGS); /* Prototypes for private functions */ static bool HandleReplicationCommand(const char *cmd_string); -static int WalSndLoop(void); +static void WalSndLoop(void) __attribute__((noreturn)); static void InitWalSnd(void); static void WalSndHandshake(void); static void WalSndKill(int code, Datum arg); @@ -135,7 +135,7 @@ static void WalSndKeepalive(char *msgbuf); /* Main entry point for walsender process */ -int +void WalSenderMain(void) { MemoryContext walsnd_context; @@ -192,7 +192,7 @@ WalSenderMain(void) SyncRepInitConfig(); /* Main loop of walsender */ - return WalSndLoop(); + WalSndLoop(); } /* @@ -706,7 +706,7 @@ ProcessStandbyHSFeedbackMessage(void) } /* Main loop of walsender process */ -static int +static void WalSndLoop(void) { char *output_message; @@ -882,7 +882,7 @@ WalSndLoop(void) whereToSendOutput = DestNone; proc_exit(0); - return 1; /* keep the compiler quiet */ + abort(); /* keep the compiler quiet */ } /* Initialize a per-walsender data structure for this walsender process */ diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 51b6df54f4..9a5438f18a 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -3507,7 +3507,7 @@ process_postgres_switches(int argc, char *argv[], GucContext ctx) * for the session. * ---------------------------------------------------------------- */ -int +void PostgresMain(int argc, char *argv[], const char *username) { const char *dbname; @@ -3721,7 +3721,10 @@ PostgresMain(int argc, char *argv[], const char *username) /* If this is a WAL sender process, we're done with initialization. */ if (am_walsender) - proc_exit(WalSenderMain()); + { + WalSenderMain(); /* does not return */ + abort(); + } /* * process any libraries that should be preloaded at backend start (this @@ -4199,7 +4202,7 @@ PostgresMain(int argc, char *argv[], const char *username) /* can't get here because the above loop never exits */ Assert(false); - return 1; /* keep compiler quiet */ + abort(); /* keep compiler quiet */ } diff --git a/src/backend/utils/misc/help_config.c b/src/backend/utils/misc/help_config.c index 5f772f9671..386ec98a32 100644 --- a/src/backend/utils/misc/help_config.c +++ b/src/backend/utils/misc/help_config.c @@ -43,7 +43,7 @@ static void printMixedStruct(mixedStruct *structToPrint); static bool displayStruct(mixedStruct *structToDisplay); -int +void GucInfoMain(void) { struct config_generic **guc_vars; @@ -64,7 +64,7 @@ GucInfoMain(void) printMixedStruct(var); } - return 0; + exit(0); } |
