diff options
| author | Jim Blandy | 1993-03-11 07:16:39 +0000 |
|---|---|---|
| committer | Jim Blandy | 1993-03-11 07:16:39 +0000 |
| commit | 985a35a39b2f99852e49bcb25d971f1a04d87670 (patch) | |
| tree | 1f81ea93deac6c3cb84fff214068cd2e92d04930 /src | |
| parent | 6c65530f8a4b3328b29f4ced55889aa898577e4c (diff) | |
| download | emacs-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.h | 30 |
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 */ |