mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Use signals for postmaster death on Linux.
Linux provides a way to ask for a signal when your parent process dies. Use that to make PostmasterIsAlive() very cheap. Based on a suggestion from Andres Freund. Author: Thomas Munro, Heikki Linnakangas Reviewed-By: Michael Paquier Discussion: https://postgr.es/m/7261eb39-0369-f2f4-1bb5-62f3b6083b5e%40iki.fi Discussion: https://postgr.es/m/20180411002643.6buofht4ranhei7k%40alap3.anarazel.de
This commit is contained in:
@ -1112,7 +1112,7 @@ WaitEventSetWaitBlock(WaitEventSet *set, int cur_timeout,
|
||||
* WL_POSTMASTER_DEATH event would be painful. Re-checking doesn't
|
||||
* cost much.
|
||||
*/
|
||||
if (!PostmasterIsAlive())
|
||||
if (!PostmasterIsAliveInternal())
|
||||
{
|
||||
occurred_events->fd = PGINVALID_SOCKET;
|
||||
occurred_events->events = WL_POSTMASTER_DEATH;
|
||||
@ -1230,7 +1230,7 @@ WaitEventSetWaitBlock(WaitEventSet *set, int cur_timeout,
|
||||
* WL_POSTMASTER_DEATH event would be painful. Re-checking doesn't
|
||||
* cost much.
|
||||
*/
|
||||
if (!PostmasterIsAlive())
|
||||
if (!PostmasterIsAliveInternal())
|
||||
{
|
||||
occurred_events->fd = PGINVALID_SOCKET;
|
||||
occurred_events->events = WL_POSTMASTER_DEATH;
|
||||
@ -1390,7 +1390,7 @@ WaitEventSetWaitBlock(WaitEventSet *set, int cur_timeout,
|
||||
* even though there is no known reason to think that the event could
|
||||
* be falsely set on Windows.
|
||||
*/
|
||||
if (!PostmasterIsAlive())
|
||||
if (!PostmasterIsAliveInternal())
|
||||
{
|
||||
occurred_events->fd = PGINVALID_SOCKET;
|
||||
occurred_events->events = WL_POSTMASTER_DEATH;
|
||||
|
Reference in New Issue
Block a user