diff options
| author | Peter Eisentraut | 2012-06-25 18:25:26 +0000 |
|---|---|---|
| committer | Peter Eisentraut | 2012-06-25 18:30:12 +0000 |
| commit | eeece9e60984e76e5a41c1e2fa9efc5a1761e560 (patch) | |
| tree | f1dfac89e34d678629b3f56ace2bb215b33f4a94 /src/backend/postmaster | |
| parent | c7d47abd04dc1322fd545370cfeb743680df0e3a (diff) | |
Unify calling conventions for postgres/postmaster sub-main functions
There was a wild mix of calling conventions: Some were declared to
return void and didn't return, some returned an int exit code, some
claimed to return an exit code, which the callers checked, but
actually never returned, and so on.
Now all of these functions are declared to return void and decorated
with attribute noreturn and don't return. That's easiest, and most
code already worked that way.
Diffstat (limited to 'src/backend/postmaster')
| -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 |
5 files changed, 21 insertions, 26 deletions
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); |
