diff options
author | davidxu <davidxu@FreeBSD.org> | 2003-06-04 12:38:21 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2003-06-04 12:38:21 +0000 |
commit | 35d309a6175dee4a2a165b1b51a8666704ed438c (patch) | |
tree | 544b2b1e58bcd739b668ebf5a96192f44c8d058a /lib/libpthread | |
parent | 8ba6f0513216caabb9da7594a3e3431c944feedf (diff) | |
download | FreeBSD-src-35d309a6175dee4a2a165b1b51a8666704ed438c.zip FreeBSD-src-35d309a6175dee4a2a165b1b51a8666704ed438c.tar.gz |
Despite whether threaded mode is turned on, always save thread's
signal mask.
Diffstat (limited to 'lib/libpthread')
-rw-r--r-- | lib/libpthread/thread/thr_sigprocmask.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/libpthread/thread/thr_sigprocmask.c b/lib/libpthread/thread/thr_sigprocmask.c index ec39da0..9cb493a 100644 --- a/lib/libpthread/thread/thr_sigprocmask.c +++ b/lib/libpthread/thread/thr_sigprocmask.c @@ -44,8 +44,10 @@ __weak_reference(_sigprocmask, sigprocmask); int _sigprocmask(int how, const sigset_t *set, sigset_t *oset) { - if (_kse_isthreaded() != 0) - return (pthread_sigmask(how, set, oset)); - else - return (__sys_sigprocmask(how, set, oset)); + int ret; + + ret = pthread_sigmask(how, set, oset); + if ((ret == 0) && (_kse_isthreaded() == 0)) + ret = __sys_sigprocmask(how, set, oset); + return (ret); } |