3737 *
3838 *
3939 * IDENTIFICATION
40- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.330 2003/05/2817:25:02 tgl Exp $
40+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.331 2003/05/2819:36:28 tgl Exp $
4141 *
4242 * NOTES
4343 *
@@ -269,12 +269,11 @@ static void dummy_handler(SIGNAL_ARGS);
269269static void CleanupProc (int pid ,int exitstatus );
270270static void LogChildExit (int lev ,const char * procname ,
271271int pid ,int exitstatus );
272- static int BackendFinalize (Port * port );
272+ static int BackendFork (Port * port );
273273void ExitPostmaster (int status );
274274static void usage (const char * );
275275static int ServerLoop (void );
276276static int BackendStartup (Port * port );
277- static void BackendFork (Port * port ,Backend * bn );
278277static int ProcessStartupPacket (Port * port ,bool SSLdone );
279278static void processCancelRequest (Port * port ,void * pkt );
280279static int initMasks (fd_set * rmask ,fd_set * wmask );
@@ -1240,7 +1239,7 @@ ProcessStartupPacket(Port *port, bool SSLdone)
12401239 * Now fetch parameters out of startup packet and save them into the
12411240 * Port structure. All data structures attached to the Port struct
12421241 * must be allocated in TopMemoryContext so that they won't disappear
1243- * when we pass them to PostgresMain (seeBackendFinalize ). We need not worry
1242+ * when we pass them to PostgresMain (seeBackendFork ). We need not worry
12441243 * about leaking this storage on failure, since we aren't in the postmaster
12451244 * process anymore.
12461245 */
@@ -2080,7 +2079,25 @@ BackendStartup(Port *port)
20802079pid = fork ();
20812080
20822081if (pid == 0 )/* child */
2083- BackendFork (port ,bn );/* never returns */
2082+ {
2083+ int status ;
2084+
2085+ #ifdef LINUX_PROFILE
2086+ setitimer (ITIMER_PROF ,& prof_itimer ,NULL );
2087+ #endif
2088+
2089+ #ifdef __BEOS__
2090+ /* Specific beos backend startup actions */
2091+ beos_backend_startup ();
2092+ #endif
2093+ free (bn );
2094+
2095+ status = BackendFork (port );
2096+
2097+ if (status != 0 )
2098+ elog (LOG ,"connection startup failed" );
2099+ proc_exit (status );
2100+ }
20842101
20852102/* in parent, error */
20862103if (pid < 0 )
@@ -2113,32 +2130,6 @@ BackendStartup(Port *port)
21132130return STATUS_OK ;
21142131}
21152132
2116-
2117- static void
2118- BackendFork (Port * port ,Backend * bn )
2119- {
2120- int status ;
2121-
2122- #ifdef LINUX_PROFILE
2123- setitimer (ITIMER_PROF ,& prof_itimer ,NULL );
2124- #endif
2125-
2126- #ifdef __BEOS__
2127- /* Specific beos backend startup actions */
2128- beos_backend_startup ();
2129- #endif
2130- free (bn );
2131-
2132- status = BackendFinalize (port );
2133- if (status != 0 )
2134- {
2135- elog (LOG ,"connection startup failed" );
2136- proc_exit (status );
2137- }
2138- else
2139- proc_exit (0 );
2140- }
2141-
21422133/*
21432134 * Try to report backend fork() failure to client before we close the
21442135 * connection.Since we do not care to risk blocking the postmaster on
@@ -2195,7 +2186,7 @@ split_opts(char **argv, int *argcp, char *s)
21952186}
21962187
21972188/*
2198- *BackendFinalize -- perform authentication, and if successful, set up the
2189+ *BackendFork -- perform authentication, and if successful, set up the
21992190 *backend's argument list and invoke backend main().
22002191 *
22012192 * This used to perform an execv() but we no longer exec the backend;
@@ -2206,7 +2197,7 @@ split_opts(char **argv, int *argcp, char *s)
22062197 *If PostgresMain() fails, return status.
22072198 */
22082199static int
2209- BackendFinalize (Port * port )
2200+ BackendFork (Port * port )
22102201{
22112202char * remote_host ;
22122203char * * av ;
@@ -2343,7 +2334,7 @@ BackendFinalize(Port *port)
23432334 * indefinitely. PreAuthDelay doesn't count against the time limit.
23442335 */
23452336if (!enable_sig_alarm (AuthenticationTimeout * 1000 , false))
2346- elog (FATAL ,"BackendFinalize : Unable to set timer for auth timeout" );
2337+ elog (FATAL ,"BackendFork : Unable to set timer for auth timeout" );
23472338
23482339/*
23492340 * Receive the startup packet (which might turn out to be a cancel
@@ -2372,7 +2363,7 @@ BackendFinalize(Port *port)
23722363 * SIGTERM/SIGQUIT again until backend startup is complete.
23732364 */
23742365if (!disable_sig_alarm (false))
2375- elog (FATAL ,"BackendFinalize : Unable to disable timer for auth timeout" );
2366+ elog (FATAL ,"BackendFork : Unable to disable timer for auth timeout" );
23762367PG_SETMASK (& BlockSig );
23772368
23782369if (Log_connections )