]> granicus.if.org Git - postgresql/commitdiff
Add SIGFPE to list of signals never to block. #ifdef all signals in
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 29 Jun 2000 02:17:42 +0000 (02:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 29 Jun 2000 02:17:42 +0000 (02:17 +0000)
that list to cope with platforms that don't have them all.

src/backend/libpq/pqsignal.c

index 4648fe455f7f77095dcaa079231f17d8924896cd..82cdf13c388d258d8932cb711c8baa5180aed523 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.16 2000/06/28 03:31:41 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/libpq/pqsignal.c,v 1.17 2000/06/29 02:17:42 tgl Exp $
  *
  * NOTES
  *             This shouldn't be in libpq, but the monitor and some other
@@ -61,13 +61,35 @@ pqinitmask(void)
 #ifdef HAVE_SIGPROCMASK
        sigemptyset(&UnBlockSig);
        sigfillset(&BlockSig);
+       /*
+        * Unmark those signals that should never be blocked.
+        * Some of these signal names don't exist on all platforms.  Most do,
+        * but might as well ifdef them all for consistency...
+        */
+#ifdef SIGTRAP
+       sigdelset(&BlockSig, SIGTRAP);
+#endif
+#ifdef SIGABRT
        sigdelset(&BlockSig, SIGABRT);
+#endif
+#ifdef SIGILL
        sigdelset(&BlockSig, SIGILL);
+#endif
+#ifdef SIGFPE
+       sigdelset(&BlockSig, SIGFPE);
+#endif
+#ifdef SIGSEGV
        sigdelset(&BlockSig, SIGSEGV);
+#endif
+#ifdef SIGBUS
        sigdelset(&BlockSig, SIGBUS);
-       sigdelset(&BlockSig, SIGTRAP);
-       sigdelset(&BlockSig, SIGCONT);
+#endif
+#ifdef SIGSYS
        sigdelset(&BlockSig, SIGSYS);
+#endif
+#ifdef SIGCONT
+       sigdelset(&BlockSig, SIGCONT);
+#endif
 #else
        UnBlockSig = 0;
        BlockSig = sigmask(SIGHUP) | sigmask(SIGQUIT) |