summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libkse/thread/thr_sigprocmask.c10
-rw-r--r--lib/libpthread/thread/thr_sigprocmask.c10
2 files changed, 12 insertions, 8 deletions
diff --git a/lib/libkse/thread/thr_sigprocmask.c b/lib/libkse/thread/thr_sigprocmask.c
index ec39da0..9cb493a 100644
--- a/lib/libkse/thread/thr_sigprocmask.c
+++ b/lib/libkse/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);
}
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