summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2003-08-06 00:43:28 +0000
committerdeischen <deischen@FreeBSD.org>2003-08-06 00:43:28 +0000
commitb024e2e419036a6eb86b61558b0d54f467f913d5 (patch)
tree452ba5d75fe9e5d8068a8cf98e23fa0c48837da4 /lib
parent8af048e8de093e695d0c236d4b7ce01ebbe0885b (diff)
downloadFreeBSD-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.c5
-rw-r--r--lib/libpthread/thread/thr_kern.c5
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);
/*
OpenPOWER on IntegriCloud