summaryrefslogtreecommitdiffstats
path: root/sys/kern/sched_ule.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-10-16 20:32:57 +0000
committerjeff <jeff@FreeBSD.org>2003-10-16 20:32:57 +0000
commitfcda5c4f74524fe7235ceb4aac5a346c4ee61250 (patch)
tree1511d0d2f03d31fb47cc77caeeab3f1cdd87f81e /sys/kern/sched_ule.c
parent3b6db251868ba272c2d7d3784208cb7590c75467 (diff)
downloadFreeBSD-src-fcda5c4f74524fe7235ceb4aac5a346c4ee61250.zip
FreeBSD-src-fcda5c4f74524fe7235ceb4aac5a346c4ee61250.tar.gz
- Only kse_reassign() in the !running case.
Reported by: kris
Diffstat (limited to 'sys/kern/sched_ule.c')
-rw-r--r--sys/kern/sched_ule.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 498129c..1f79439 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -815,14 +815,16 @@ sched_switch(struct thread *td)
runq_add(ke->ke_runq, ke);
/* setrunqueue(td); */
}
- } else if (ke->ke_runq)
- kseq_rem(KSEQ_CPU(ke->ke_cpu), ke);
- /*
- * We will not be on the run queue. So we must be
- * sleeping or similar.
- */
- if (td->td_proc->p_flag & P_SA)
- kse_reassign(ke);
+ } else {
+ if (ke->ke_runq)
+ kseq_rem(KSEQ_CPU(ke->ke_cpu), ke);
+ /*
+ * We will not be on the run queue. So we must be
+ * sleeping or similar.
+ */
+ if (td->td_proc->p_flag & P_SA)
+ kse_reassign(ke);
+ }
sched_nest = sched_lock.mtx_recurse;
newtd = choosethread();
if (td != newtd)
OpenPOWER on IntegriCloud