diff options
author | deischen <deischen@FreeBSD.org> | 2003-08-06 00:43:28 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2003-08-06 00:43:28 +0000 |
commit | b024e2e419036a6eb86b61558b0d54f467f913d5 (patch) | |
tree | 452ba5d75fe9e5d8068a8cf98e23fa0c48837da4 /lib | |
parent | 8af048e8de093e695d0c236d4b7ce01ebbe0885b (diff) | |
download | FreeBSD-src-b024e2e419036a6eb86b61558b0d54f467f913d5.zip FreeBSD-src-b024e2e419036a6eb86b61558b0d54f467f913d5.tar.gz |
Don't call kse_set_curthread() when scheduling a new bound
thread. It should only be called by the current kse and
never by a KSE on behalf of another.
Submitted by: davidxu
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libkse/thread/thr_kern.c | 5 | ||||
-rw-r--r-- | lib/libpthread/thread/thr_kern.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/libkse/thread/thr_kern.c b/lib/libkse/thread/thr_kern.c index 085c079..ba75f0d 100644 --- a/lib/libkse/thread/thr_kern.c +++ b/lib/libkse/thread/thr_kern.c @@ -1351,9 +1351,10 @@ _thr_schedule_add(struct pthread *curthread, struct pthread *newthread) KSEG_THRQ_ADD(newthread->kseg, newthread); /* this thread never gives up kse */ newthread->active = 1; - kse_set_curthread(newthread->kse, newthread); + newthread->kse->k_curthread = newthread; newthread->kse->k_kcb->kcb_kmbx.km_flags = KMF_BOUND; - newthread->kse->k_kcb->kcb_kmbx.km_func = (kse_func_t *)kse_sched_single; + newthread->kse->k_kcb->kcb_kmbx.km_func = + (kse_func_t *)kse_sched_single; newthread->kse->k_kcb->kcb_kmbx.km_quantum = 0; KSE_SET_MBOX(newthread->kse, newthread); /* diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index 085c079..ba75f0d 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/thread/thr_kern.c @@ -1351,9 +1351,10 @@ _thr_schedule_add(struct pthread *curthread, struct pthread *newthread) KSEG_THRQ_ADD(newthread->kseg, newthread); /* this thread never gives up kse */ newthread->active = 1; - kse_set_curthread(newthread->kse, newthread); + newthread->kse->k_curthread = newthread; newthread->kse->k_kcb->kcb_kmbx.km_flags = KMF_BOUND; - newthread->kse->k_kcb->kcb_kmbx.km_func = (kse_func_t *)kse_sched_single; + newthread->kse->k_kcb->kcb_kmbx.km_func = + (kse_func_t *)kse_sched_single; newthread->kse->k_kcb->kcb_kmbx.km_quantum = 0; KSE_SET_MBOX(newthread->kse, newthread); /* |