diff options
Diffstat (limited to 'lib/libkse/thread/thr_sigprocmask.c')
-rw-r--r-- | lib/libkse/thread/thr_sigprocmask.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libkse/thread/thr_sigprocmask.c b/lib/libkse/thread/thr_sigprocmask.c index 9455922..592a61e 100644 --- a/lib/libkse/thread/thr_sigprocmask.c +++ b/lib/libkse/thread/thr_sigprocmask.c @@ -31,6 +31,9 @@ * * $FreeBSD$ */ +#include <sys/param.h> +#include <sys/types.h> +#include <sys/signalvar.h> #include <signal.h> #include <errno.h> #ifdef _THREAD_SAFE @@ -54,13 +57,13 @@ sigprocmask(int how, const sigset_t * set, sigset_t * oset) /* Block signals: */ case SIG_BLOCK: /* Add signals to the existing mask: */ - _thread_run->sigmask |= *set; + SIGSETOR(_thread_run->sigmask, *set); break; /* Unblock signals: */ case SIG_UNBLOCK: /* Clear signals from the existing mask: */ - _thread_run->sigmask &= ~(*set); + SIGSETNAND(_thread_run->sigmask, *set); break; /* Set the signal process mask: */ |