>From 96a3bc5fe46e226ff179a729baa58efc16c0aaba Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 16 Dec 2009 16:07:12 +0200 Subject: [PATCH 2/3] Don't unblock SIGQUIT in the SIGQUIT handler --- src/backend/tcop/postgres.c | 1 + src/include/libpq/pqsignal.h | 1 + 2 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index c7906bf..b2fb501 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2538,6 +2538,7 @@ drop_unnamed_stmt(void) void quickdie(SIGNAL_ARGS) { + sigaddset(&BlockSig, SIGQUIT); /* prevent nested calls */ PG_SETMASK(&BlockSig); /* diff --git a/src/include/libpq/pqsignal.h b/src/include/libpq/pqsignal.h index 82414d6..4659ae2 100644 --- a/src/include/libpq/pqsignal.h +++ b/src/include/libpq/pqsignal.h @@ -38,6 +38,7 @@ extern int UnBlockSig, int pqsigsetmask(int mask); #endif +#define sigaddset(set, signum) (*(set) |= (sigmask(signum))) #define sigdelset(set, signum) (*(set) &= ~(sigmask(signum))) #endif /* not HAVE_SIGPROCMASK */ -- 1.6.5