Improve tests for postmaster death in auxiliary processes.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 10 May 2012 04:54:32 +0000 (00:54 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 10 May 2012 04:54:56 +0000 (00:54 -0400)
commitfd71421b0187de0e2bf76ff66b4a9433bd96c4a0
tree7aeff9ea8382f0f01c0a07e29162f60fb06a7d7c
parente78cc624e87709e04960966c97a8d9f927f3d2f7
Improve tests for postmaster death in auxiliary processes.

In checkpointer and walwriter, avoid calling PostmasterIsAlive unless
WaitLatch has reported WL_POSTMASTER_DEATH.  This saves a kernel call per
iteration of the process's outer loop, which is not all that much, but a
cycle shaved is a cycle earned.  I had already removed the unconditional
PostmasterIsAlive calls in bgwriter and pgstat in previous patches, but
forgot that WL_POSTMASTER_DEATH is supposed to be treated as untrustworthy
(per comment in unix_latch.c); so adjust those two cases to match.

There are a few other places where the same idea might be applied, but only
after substantial code rearrangement, so I didn't bother.
src/backend/postmaster/bgwriter.c
src/backend/postmaster/checkpointer.c
src/backend/postmaster/pgstat.c
src/backend/postmaster/walwriter.c