diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-10-01 16:48:37 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-10-01 16:48:37 +0000 |
commit | 87fd2dbe7c43505c5e38a67bfd9d72a8c6633ced (patch) | |
tree | 2f96bda796331b8705d8ac2f1f6f698f07a692b5 | |
parent | 43cadb9231d9a3c56371fbdafacbebde24fdf3c9 (diff) | |
download | postgresql-87fd2dbe7c43505c5e38a67bfd9d72a8c6633ced.tar.gz postgresql-87fd2dbe7c43505c5e38a67bfd9d72a8c6633ced.zip |
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).
-rw-r--r-- | src/backend/postmaster/pgstat.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 6c8ed373a87..fb6a61b6476 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); |