summaryrefslogtreecommitdiff
path: root/src/syssignal.h
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>1993-03-11 07:16:39 +0000
committerJim Blandy <jimb@redhat.com>1993-03-11 07:16:39 +0000
commit5574059527e3949952eb37a97981729ed9d7570d (patch)
treed13567cca1856f28412fc340b50b1ecfd69bc72c /src/syssignal.h
parent194457ca6444f30e26a97c7b7dcff82b40ef0dbe (diff)
downloademacs-5574059527e3949952eb37a97981729ed9d7570d.tar.gz
* syssignal.h (sigunblock): Add definition which works under SYSVr4.
* emacs.c (fatal_error_signal): Unblock the signal which we're handling using sigunblock.
Diffstat (limited to 'src/syssignal.h')
-rw-r--r--src/syssignal.h30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/syssignal.h b/src/syssignal.h
index 486f9efd623..dddaee80924 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -34,9 +34,9 @@ extern sigset_t empty_mask, full_mask, temp_mask;
sigaddset (&_mask, SIG); \
_mask; \
})
-#else
+#else /* ! defined (__GNUC__) */
#define sigmask(SIG) (sys_sigmask (SIG))
-#endif
+#endif /* ! defined (__GNUC__) */
#define sigpause(SIG) sys_sigpause(SIG)
#define sigblock(SIG) sys_sigblock(SIG)
@@ -53,12 +53,24 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
#define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG)
-#else /* not POSIX_SIGNALS */
+#else /* ! defined (POSIX_SIGNALS) */
+#ifdef USG5_4
+
+#define sigunblock(sig) (sigprocmask(SIG_SETMASK, SIGFULLMASK & ~(sig), NULL))
+
+#else
+#ifdef USG
+
+#define sigunblock(sig)
+
+#else
#define sigunblock(SIG) \
{ SIGMASKTYPE omask = sigblock (SIGEMPTYMASK); sigsetmask (omask & ~SIG); }
-#endif /* not POSIX_SIGNALS */
+#endif /* ! defined (USG) */
+#endif /* ! defined (USG5_4) */
+#endif /* ! defined (POSIX_SIGNALS) */
#ifndef SIGMASKTYPE
#define SIGMASKTYPE int
@@ -89,7 +101,7 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
#define sigblockx(sig) sigblock (sigmask (sig))
#define sigunblockx(sig) sigblock (SIGEMPTYMASK)
#define sigpausex(sig) sigpause (0)
-#endif /* not BSD4_1 */
+#endif /* BSD4_1 */
#ifdef BSD4_1
#define SIGIO SIGTINT
@@ -97,7 +109,7 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
#define sigblockx(sig) sighold (sig)
#define sigunblockx(sig) sigrelse (sig)
#define sigpausex(sig) sigpause (sig)
-#endif /* BSD4_1 */
+#endif /* ! defined (BSD4_1) */
/* On bsd, [man says] kill does not accept a negative number to kill a pgrp.
Must do that using the killpg call. */
@@ -113,6 +125,6 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
#ifdef SIGCLD
#ifndef SIGCHLD
#define SIGCHLD SIGCLD
-#endif /* not SIGCHLD */
-#endif /* SIGCLD */
-#endif /* not VMS */
+#endif /* SIGCHLD */
+#endif /* ! defined (SIGCLD) */
+#endif /* VMS */