diff options
| author | David Xu <davidxu@FreeBSD.org> | 2003-09-16 02:03:39 +0000 |
|---|---|---|
| committer | David Xu <davidxu@FreeBSD.org> | 2003-09-16 02:03:39 +0000 |
| commit | 0f5297f5c3db8d88394b31f0dafb15d9098f851c (patch) | |
| tree | 6d1f032e554fb8b8a60bf78a4b056ec99479a6a5 /lib/libpthread/thread | |
| parent | a87a12715cd278f5968e823bbcb657b65ced6bbc (diff) | |
Notes
Diffstat (limited to 'lib/libpthread/thread')
| -rw-r--r-- | lib/libpthread/thread/thr_kern.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index e3539abc8a51..4c782653a674 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/thread/thr_kern.c @@ -330,6 +330,7 @@ _kse_single_thread(struct pthread *curthread) */ sigprocmask(SIG_SETMASK, &curthread->sigmask, NULL); curthread->kse->k_kcb->kcb_kmbx.km_curthread = NULL; + curthread->attr.flags |= PTHREAD_SCOPE_SYSTEM; _thr_active_threads = 1; #endif } @@ -1642,7 +1643,7 @@ kse_switchout_thread(struct kse *kse, struct pthread *thread) for (i = 1; i <= _SIG_MAXSIG; ++i) { if (SIGISMEMBER(thread->sigpend, i) && !SIGISMEMBER(thread->sigmask, i)) { - restart = _thread_sigact[1 - 1].sa_flags & SA_RESTART; + restart = _thread_sigact[i - 1].sa_flags & SA_RESTART; kse_thr_interrupt(&thread->tcb->tcb_tmbx, restart ? KSE_INTR_RESTART : KSE_INTR_INTERRUPT, 0); break; |
