summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_sleepqueue.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2004-07-02 19:09:50 +0000
committerjhb <jhb@FreeBSD.org>2004-07-02 19:09:50 +0000
commit1b16b181d12075ffc084f2a593e16fe3dd8f6f6d (patch)
treee89f55b0c72410220a98331e61987c812e0316dd /sys/kern/subr_sleepqueue.c
parent4b39413aeb9e3e3ff1341b98477edddee8807db5 (diff)
downloadFreeBSD-src-1b16b181d12075ffc084f2a593e16fe3dd8f6f6d.zip
FreeBSD-src-1b16b181d12075ffc084f2a593e16fe3dd8f6f6d.tar.gz
- Change mi_switch() and sched_switch() to accept an optional thread to
switch to. If a non-NULL thread pointer is passed in, then the CPU will switch to that thread directly rather than calling choosethread() to pick a thread to choose to. - Make sched_switch() aware of idle threads and know to do TD_SET_CAN_RUN() instead of sticking them on the run queue rather than requiring all callers of mi_switch() to know to do this if they can be called from an idlethread. - Move constants for arguments to mi_switch() and thread_single() out of the middle of the function prototypes and up above into their own section.
Diffstat (limited to 'sys/kern/subr_sleepqueue.c')
-rw-r--r--sys/kern/subr_sleepqueue.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/subr_sleepqueue.c b/sys/kern/subr_sleepqueue.c
index 79bbf2c..a7a07d5 100644
--- a/sys/kern/subr_sleepqueue.c
+++ b/sys/kern/subr_sleepqueue.c
@@ -409,7 +409,7 @@ sleepq_switch(void *wchan)
sched_sleep(td);
TD_SET_SLEEPING(td);
- mi_switch(SW_VOL);
+ mi_switch(SW_VOL, NULL);
KASSERT(TD_IS_RUNNING(td), ("running but not TDS_RUNNING"));
CTR3(KTR_PROC, "sleepq resume: thread %p (pid %ld, %s)",
(void *)td, (long)td->td_proc->p_pid, (void *)td->td_proc->p_comm);
@@ -449,7 +449,7 @@ sleepq_check_timeout(void)
else if (callout_stop(&td->td_slpcallout) == 0) {
td->td_flags |= TDF_TIMEOUT;
TD_SET_SLEEPING(td);
- mi_switch(SW_INVOL);
+ mi_switch(SW_INVOL, NULL);
}
return (0);
}
OpenPOWER on IntegriCloud