diff options
-rw-r--r-- | sail/machdep.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sail/machdep.h b/sail/machdep.h index a6721037..087d5636 100644 --- a/sail/machdep.h +++ b/sail/machdep.h @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.h,v 1.3 1995/04/22 10:37:00 cgd Exp $ */ +/* $NetBSD: machdep.h,v 1.4 1995/04/28 21:30:16 mycroft Exp $ */ /* * Copyright (c) 1983, 1993 @@ -37,12 +37,18 @@ #define TIMEOUT 300 /* Sync() timeout in seconds */ -/* for 4.2bsd machines */ -#define blockalarm() ((void) sigblock(1 << SIGALRM-1)) -#define unblockalarm() ((void) sigsetmask(sigblock(0) & ~(1 << SIGALRM-1))) - -/* for 2.9bsd machines (onyx) -typedef int void; -#define blockalarm() ((void) sighold(SIGALRM)) -#define unblockalarm() ((void) sigrelse(SIGALRM)) -*/ +/* for POSIX systems */ +#define blockalarm() \ + do { \ + sigset_t sigset; \ + sigemptyset(&sigset); \ + sigaddset(&sigset, SIGALRM); \ + sigprocmask(SIG_BLOCK, &sigset, (sigset_t *)0); \ + } while (0) +#define unblockalarm() \ + do { \ + sigset_t sigset; \ + sigemptyset(&sigset); \ + sigaddset(&sigset, SIGALRM); \ + sigprocmask(SIG_UNBLOCK, &sigset, (sigset_t *)0); \ + } while (0) |