summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2003-07-04 08:51:37 +0000
committerdavidxu <davidxu@FreeBSD.org>2003-07-04 08:51:37 +0000
commitedda82731592c62ca2ff35f6f3318e8af60cbbac (patch)
treea3e2deda3762e08a3ff491a551c5dc0e70d9fbac /lib
parent5a2adbe7093f3725f2d3c64092af848fb3880f9e (diff)
downloadFreeBSD-src-edda82731592c62ca2ff35f6f3318e8af60cbbac.zip
FreeBSD-src-edda82731592c62ca2ff35f6f3318e8af60cbbac.tar.gz
Correctly lock/unlock signal lock. I must be in bad state, need to sleep.
Diffstat (limited to 'lib')
-rw-r--r--lib/libkse/thread/thr_sigwait.c3
-rw-r--r--lib/libpthread/thread/thr_sigwait.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/libkse/thread/thr_sigwait.c b/lib/libkse/thread/thr_sigwait.c
index a2411310..ac44972 100644
--- a/lib/libkse/thread/thr_sigwait.c
+++ b/lib/libkse/thread/thr_sigwait.c
@@ -116,7 +116,8 @@ lib_sigtimedwait(const sigset_t *set, siginfo_t *info,
siginfo = curthread->siginfo[i - 1];
KSE_SCHED_UNLOCK(curthread->kse,
curthread->kseg);
- _kse_critical_leave(crit);
+ KSE_LOCK_ACQUIRE(curthread->kse,
+ &_thread_signal_lock);
ret = i;
goto OUT;
}
diff --git a/lib/libpthread/thread/thr_sigwait.c b/lib/libpthread/thread/thr_sigwait.c
index a2411310..ac44972 100644
--- a/lib/libpthread/thread/thr_sigwait.c
+++ b/lib/libpthread/thread/thr_sigwait.c
@@ -116,7 +116,8 @@ lib_sigtimedwait(const sigset_t *set, siginfo_t *info,
siginfo = curthread->siginfo[i - 1];
KSE_SCHED_UNLOCK(curthread->kse,
curthread->kseg);
- _kse_critical_leave(crit);
+ KSE_LOCK_ACQUIRE(curthread->kse,
+ &_thread_signal_lock);
ret = i;
goto OUT;
}
OpenPOWER on IntegriCloud