summaryrefslogtreecommitdiff
path: root/src/syssignal.h
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-06-20 18:31:04 +0000
committerGerd Moellmann <gerd@gnu.org>2000-06-20 18:31:04 +0000
commit094d2b0ea825865bfc076b6667db6973d673385c (patch)
treedf3227e6170b120de0f493a1307faaaa4721645f /src/syssignal.h
parent6a9f1263c6c7911803f91058147d601d12a03848 (diff)
downloademacs-094d2b0ea825865bfc076b6667db6973d673385c.tar.gz
emacs-094d2b0ea825865bfc076b6667db6973d673385c.tar.bz2
emacs-094d2b0ea825865bfc076b6667db6973d673385c.zip
(sigblock, sigunblock) [USG5_4]: Set
sigprocmask_set, and pass a pointer to it to sigprocmask.
Diffstat (limited to 'src/syssignal.h')
-rw-r--r--src/syssignal.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/syssignal.h b/src/syssignal.h
index 66e6ffa61fc..26e10edd5b9 100644
--- a/src/syssignal.h
+++ b/src/syssignal.h
@@ -78,11 +78,17 @@ sigset_t sys_sigsetmask P_ ((sigset_t new_mask));
#else /* ! defined (POSIX_SIGNALS) */
#ifdef USG5_4
+extern SIGMASKTYPE sigprocmask_set;
+
#ifndef sigblock
-#define sigblock(sig) (sigprocmask (SIG_BLOCK, SIGEMPTYMASK | sig, NULL))
+#define sigblock(sig) \
+ (sigprocmask_set = SIGEMPTYMASK | (sig), \
+ sigprocmask (SIG_BLOCK, &sigprocmask_set, NULL))
#endif
-#define sigunblock(sig) (sigprocmask (SIG_SETMASK, SIGFULLMASK & ~(sig), NULL))
+#define sigunblock(sig) \
+ (sigprocmask_set = SIGFULLMASK & ~(sig), \
+ sigprocmask (SIG_SETMASK, &sigprocmask_set, NULL))
#else
#ifdef USG