summaryrefslogtreecommitdiffstats
path: root/lib/libpthread
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-06-04 12:38:21 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-06-04 12:38:21 +0000
commit35d309a6175dee4a2a165b1b51a8666704ed438c (patch)
tree544b2b1e58bcd739b668ebf5a96192f44c8d058a /lib/libpthread
parent8ba6f0513216caabb9da7594a3e3431c944feedf (diff)
downloadFreeBSD-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.c10
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);
}
OpenPOWER on IntegriCloud