mirror of
https://github.com/postgres/postgres.git
synced 2025-12-06 00:02:13 +03:00
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.
This commit is contained in:
@@ -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 */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user