>From d70d637ffe60dd3c73690a2640e84ad6e2cdbb50 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 16 Dec 2009 14:41:10 +0200 Subject: [PATCH 1/3] If there is no sigdelset(), define it as a macro Removes some duplicate code that recreated the identical workaround. --- src/backend/postmaster/bgwriter.c | 4 ---- src/backend/postmaster/walwriter.c | 4 ---- src/backend/tcop/postgres.c | 4 ---- src/include/libpq/pqsignal.h | 6 ++++-- 4 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index a2c32a7..81c0d36 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -244,11 +244,7 @@ BackgroundWriterMain(void) pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ -#ifdef HAVE_SIGPROCMASK sigdelset(&BlockSig, SIGQUIT); -#else - BlockSig &= ~(sigmask(SIGQUIT)); -#endif /* * Initialize so that first time-driven event happens at the correct time. diff --git a/src/backend/postmaster/walwriter.c b/src/backend/postmaster/walwriter.c index 90b8cfe..7d95696 100644 --- a/src/backend/postmaster/walwriter.c +++ b/src/backend/postmaster/walwriter.c @@ -126,11 +126,7 @@ WalWriterMain(void) pqsignal(SIGWINCH, SIG_DFL); /* We allow SIGQUIT (quickdie) at all times */ -#ifdef HAVE_SIGPROCMASK sigdelset(&BlockSig, SIGQUIT); -#else - BlockSig &= ~(sigmask(SIGQUIT)); -#endif /* * Create a resource owner to keep track of our resources (not clear that diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index c985478..c7906bf 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -3292,11 +3292,7 @@ PostgresMain(int argc, char *argv[], const char *username) if (IsUnderPostmaster) { /* We allow SIGQUIT (quickdie) at all times */ -#ifdef HAVE_SIGPROCMASK sigdelset(&BlockSig, SIGQUIT); -#else - BlockSig &= ~(sigmask(SIGQUIT)); -#endif } PG_SETMASK(&BlockSig); /* block everything except SIGQUIT */ diff --git a/src/include/libpq/pqsignal.h b/src/include/libpq/pqsignal.h index d8e791c..82414d6 100644 --- a/src/include/libpq/pqsignal.h +++ b/src/include/libpq/pqsignal.h @@ -26,7 +26,7 @@ extern sigset_t UnBlockSig, StartupBlockSig; #define PG_SETMASK(mask) sigprocmask(SIG_SETMASK, mask, NULL) -#else +#else /* not HAVE_SIGPROCMASK */ extern int UnBlockSig, BlockSig, StartupBlockSig; @@ -37,7 +37,9 @@ extern int UnBlockSig, #define PG_SETMASK(mask) pqsigsetmask(*((int*)(mask))) int pqsigsetmask(int mask); #endif -#endif + +#define sigdelset(set, signum) (*(set) &= ~(sigmask(signum))) +#endif /* not HAVE_SIGPROCMASK */ typedef void (*pqsigfunc) (int); -- 1.6.5