From f40022f1adaeff85b01d98fea38cf5aa16814aa7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 10 May 2012 14:34:22 -0400 Subject: Make WaitLatch's WL_POSTMASTER_DEATH result trustworthy; simplify callers. Per a suggestion from Peter Geoghegan, make WaitLatch responsible for verifying that the WL_POSTMASTER_DEATH bit it returns is truthful (by testing PostmasterIsAlive). Then simplify its callers, who no longer need to do that for themselves. Remove weasel wording about falsely-set result bits from WaitLatch's API contract. --- src/backend/postmaster/pgstat.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/backend/postmaster/pgstat.c') diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 15002dcd9d1..01273e19340 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -51,7 +51,6 @@ #include "storage/ipc.h" #include "storage/latch.h" #include "storage/pg_shmem.h" -#include "storage/pmsignal.h" #include "storage/procsignal.h" #include "utils/ascii.h" #include "utils/guc.h" @@ -3227,11 +3226,9 @@ PgstatCollectorMain(int argc, char *argv[]) /* * Emergency bailout if postmaster has died. This is to avoid the - * necessity for manual cleanup of all postmaster children. Note - * that we mustn't trust the WL_POSTMASTER_DEATH result flag entirely; - * if it is set, recheck with PostmasterIsAlive before believing it. + * necessity for manual cleanup of all postmaster children. */ - if ((wr & WL_POSTMASTER_DEATH) && !PostmasterIsAlive()) + if (wr & WL_POSTMASTER_DEATH) break; } /* end of outer loop */ -- cgit v1.2.3