From b63b967a7e68c0f157958406aaa78285ba6e5dd7 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Wed, 16 Dec 2009 22:55:34 +0000 Subject: [PATCH] If there is no sigdelset(), define it as a macro. This removes some duplicate code that recreated the identical workaround when the newer signal API is missing. --- src/backend/postmaster/bgwriter.c | 6 +----- src/backend/postmaster/walwriter.c | 6 +----- src/backend/tcop/postgres.c | 6 +----- src/include/libpq/pqsignal.h | 8 +++++--- 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c index bcdb5d7bb75..e3e2b94c3a9 100644 --- a/src/backend/postmaster/bgwriter.c +++ b/src/backend/postmaster/bgwriter.c @@ -38,7 +38,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.63 2009/07/31 20:26:22 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/bgwriter.c,v 1.64 2009/12/16 22:55:33 petere Exp $ * *------------------------------------------------------------------------- */ @@ -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 7f13e682a5c..b6e92798786 100644 --- a/src/backend/postmaster/walwriter.c +++ b/src/backend/postmaster/walwriter.c @@ -34,7 +34,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/postmaster/walwriter.c,v 1.8 2009/07/31 20:26:23 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/walwriter.c,v 1.9 2009/12/16 22:55:33 petere Exp $ * *------------------------------------------------------------------------- */ @@ -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 71ae42dab70..884748c9b12 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.576 2009/12/15 04:57:47 rhaas Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.577 2009/12/16 22:55:33 petere Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -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 cd631c19e24..6061898b36b 100644 --- a/src/include/libpq/pqsignal.h +++ b/src/include/libpq/pqsignal.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/libpq/pqsignal.h,v 1.34 2009/08/29 19:26:51 tgl Exp $ + * $PostgreSQL: pgsql/src/include/libpq/pqsignal.h,v 1.35 2009/12/16 22:55:34 petere Exp $ * * NOTES * This shouldn't be in libpq, but the monitor and some other @@ -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); -- GitLab