If there is no sigdelset(), define it as a macro.
authorPeter Eisentraut <[email protected]>
Wed, 16 Dec 2009 22:55:34 +0000 (22:55 +0000)
committerPeter Eisentraut <[email protected]>
Wed, 16 Dec 2009 22:55:34 +0000 (22:55 +0000)
This removes some duplicate code that recreated the identical workaround
when the newer signal API is missing.

src/backend/postmaster/bgwriter.c
src/backend/postmaster/walwriter.c
src/backend/tcop/postgres.c
src/include/libpq/pqsignal.h

index a2c32a7e0c758efacc0eece57f2198aa039324e4..81c0d365d262a199a6a8b16cd0457611136c6439 100644 (file)
@@ -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.
index 90b8cfe0d50f8841b9f9f76b5a1941f0a4c8a2a5..7d9569685304ff77b057bf53e3cd0730c0f72e57 100644 (file)
@@ -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
index c9854787051333845acb1fb465e0f2216f2c3e9d..c7906bfa1bb5fc2e137415b4820dfdd498632a63 100644 (file)
@@ -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 */
index d8e791c5ca461b4a7700af31ad8e15d40279bb53..82414d62d7a2275213f0dee740b1c22a7b9b9236 100644 (file)
@@ -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);