1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-14 18:42:34 +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:
Thomas Munro
2018-07-11 12:40:58 +12:00
parent 56a7147213
commit 9f09529952
8 changed files with 160 additions and 20 deletions

View File

@ -43,6 +43,7 @@
#include "storage/ipc.h"
#include "storage/latch.h"
#include "storage/pg_shmem.h"
#include "storage/pmsignal.h"
#include "storage/proc.h"
#include "storage/procarray.h"
#include "utils/builtins.h"
@ -304,6 +305,9 @@ InitPostmasterChild(void)
if (setsid() < 0)
elog(FATAL, "setsid() failed: %m");
#endif
/* Request a signal if the postmaster dies, if possible. */
PostmasterDeathSignalInit();
}
/*