From 9f09529952ac41a10e5874cba745c1c24e67ac79 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 11 Jul 2018 12:40:58 +1200 Subject: 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 --- src/backend/utils/init/miscinit.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/backend/utils/init/miscinit.c') diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 03b28c3604a..4bb28938c27 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -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(); } /* -- cgit v1.2.3