aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1993-03-11 07:16:39 +0000
committerJim Blandy1993-03-11 07:16:39 +0000
commit985a35a39b2f99852e49bcb25d971f1a04d87670 (patch)
tree1f81ea93deac6c3cb84fff214068cd2e92d04930 /src
parent6c65530f8a4b3328b29f4ced55889aa898577e4c (diff)
downloademacs-985a35a39b2f99852e49bcb25d971f1a04d87670.tar.gz
emacs-985a35a39b2f99852e49bcb25d971f1a04d87670.zip
* 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')
-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;
34 sigaddset (&_mask, SIG); \ 34 sigaddset (&_mask, SIG); \
35 _mask; \ 35 _mask; \
36 }) 36 })
37#else 37#else /* ! defined (__GNUC__) */
38#define sigmask(SIG) (sys_sigmask (SIG)) 38#define sigmask(SIG) (sys_sigmask (SIG))
39#endif 39#endif /* ! defined (__GNUC__) */
40 40
41#define sigpause(SIG) sys_sigpause(SIG) 41#define sigpause(SIG) sys_sigpause(SIG)
42#define sigblock(SIG) sys_sigblock(SIG) 42#define sigblock(SIG) sys_sigblock(SIG)
@@ -53,12 +53,24 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
53 53
54#define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG) 54#define sys_sigdel(MASK,SIG) sigdelset(&MASK,SIG)
55 55
56#else /* not POSIX_SIGNALS */ 56#else /* ! defined (POSIX_SIGNALS) */
57#ifdef USG5_4
58
59#define sigunblock(sig) (sigprocmask(SIG_SETMASK, SIGFULLMASK & ~(sig), NULL))
60
61#else
62#ifdef USG
63
64#define sigunblock(sig)
65
66#else
57 67
58#define sigunblock(SIG) \ 68#define sigunblock(SIG) \
59{ SIGMASKTYPE omask = sigblock (SIGEMPTYMASK); sigsetmask (omask & ~SIG); } 69{ SIGMASKTYPE omask = sigblock (SIGEMPTYMASK); sigsetmask (omask & ~SIG); }
60 70
61#endif /* not POSIX_SIGNALS */ 71#endif /* ! defined (USG) */
72#endif /* ! defined (USG5_4) */
73#endif /* ! defined (POSIX_SIGNALS) */
62 74
63#ifndef SIGMASKTYPE 75#ifndef SIGMASKTYPE
64#define SIGMASKTYPE int 76#define SIGMASKTYPE int
@@ -89,7 +101,7 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
89#define sigblockx(sig) sigblock (sigmask (sig)) 101#define sigblockx(sig) sigblock (sigmask (sig))
90#define sigunblockx(sig) sigblock (SIGEMPTYMASK) 102#define sigunblockx(sig) sigblock (SIGEMPTYMASK)
91#define sigpausex(sig) sigpause (0) 103#define sigpausex(sig) sigpause (0)
92#endif /* not BSD4_1 */ 104#endif /* BSD4_1 */
93 105
94#ifdef BSD4_1 106#ifdef BSD4_1
95#define SIGIO SIGTINT 107#define SIGIO SIGTINT
@@ -97,7 +109,7 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
97#define sigblockx(sig) sighold (sig) 109#define sigblockx(sig) sighold (sig)
98#define sigunblockx(sig) sigrelse (sig) 110#define sigunblockx(sig) sigrelse (sig)
99#define sigpausex(sig) sigpause (sig) 111#define sigpausex(sig) sigpause (sig)
100#endif /* BSD4_1 */ 112#endif /* ! defined (BSD4_1) */
101 113
102/* On bsd, [man says] kill does not accept a negative number to kill a pgrp. 114/* On bsd, [man says] kill does not accept a negative number to kill a pgrp.
103 Must do that using the killpg call. */ 115 Must do that using the killpg call. */
@@ -113,6 +125,6 @@ sigset_t sys_sigsetmask (sigset_t new_mask);
113#ifdef SIGCLD 125#ifdef SIGCLD
114#ifndef SIGCHLD 126#ifndef SIGCHLD
115#define SIGCHLD SIGCLD 127#define SIGCHLD SIGCLD
116#endif /* not SIGCHLD */ 128#endif /* SIGCHLD */
117#endif /* SIGCLD */ 129#endif /* ! defined (SIGCLD) */
118#endif /* not VMS */ 130#endif /* VMS */