diff options
author | jeff <jeff@FreeBSD.org> | 2003-10-16 20:32:57 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-10-16 20:32:57 +0000 |
commit | fcda5c4f74524fe7235ceb4aac5a346c4ee61250 (patch) | |
tree | 1511d0d2f03d31fb47cc77caeeab3f1cdd87f81e /sys/kern/sched_ule.c | |
parent | 3b6db251868ba272c2d7d3784208cb7590c75467 (diff) | |
download | FreeBSD-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.c | 18 |
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) |