diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2012-06-25 21:25:26 +0300 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2012-06-25 21:30:12 +0300 |
commit | eeece9e60984e76e5a41c1e2fa9efc5a1761e560 (patch) | |
tree | f1dfac89e34d678629b3f56ace2bb215b33f4a94 /src/backend/main/main.c | |
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/main/main.c')
-rw-r--r-- | src/backend/main/main.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/backend/main/main.c b/src/backend/main/main.c index c7d48e95ad6..33c5a0a4e64 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 */ } |