From 87fd2dbe7c43505c5e38a67bfd9d72a8c6633ced Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 1 Oct 2001 16:48:37 +0000 Subject: [PATCH] Clean up a little more carefully around fork of pgstat subprocess. Partial support for BEOS (not sure whether second fork of grandchild process needs these extra calls or not; someone who has BEOS will need to test it). --- src/backend/postmaster/pgstat.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 6c8ed373a8..fb6a61b647 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -16,7 +16,7 @@ * * Copyright (c) 2001, PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.8 2001/10/01 05:36:13 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.9 2001/10/01 16:48:37 tgl Exp $ * ---------- */ #include "postgres.h" @@ -273,9 +273,22 @@ pgstat_start(int real_argc, char *real_argv[]) /* * Then fork off the collector. Remember its PID for pgstat_ispgstat. */ + + fflush(stdout); + fflush(stderr); + +#ifdef __BEOS__ + /* Specific beos actions before backend startup */ + beos_before_backend_startup(); +#endif + switch ((pgStatPid = (int)fork())) { case -1: +#ifdef __BEOS__ + /* Specific beos actions */ + beos_backend_startup_failed(); +#endif perror("PGSTAT: fork(2)"); pgStatRunning = 0; return -1; @@ -289,6 +302,18 @@ pgstat_start(int real_argc, char *real_argv[]) } /* in postmaster child ... */ + +#ifdef __BEOS__ + /* Specific beos actions after backend startup */ + beos_backend_startup(); +#endif + + IsUnderPostmaster = true; /* we are a postmaster subprocess now */ + + /* Lose the postmaster's on-exit routines */ + on_exit_reset(); + + /* Close the postmaster's sockets, except for pgstat link */ ClosePostmasterPorts(false); pgstat_main(real_argc, real_argv);