diff options
author | Richard Braun <rbraun@sceen.net> | 2012-12-14 20:35:23 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2012-12-14 20:35:23 +0100 |
commit | 82f41af786f9cb7497bff3fa8f9d049c245af3a9 (patch) | |
tree | db6efe9757c3aee09adbd7af13309df6ff2d7d95 /kern/thread.c | |
parent | 45acb625b17ca642fa968a7ca41e0a03e8e9ccfb (diff) |
kern/thread: tidy scheduler entry functions
Diffstat (limited to 'kern/thread.c')
-rw-r--r-- | kern/thread.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/kern/thread.c b/kern/thread.c index dcf038c3..27cdb1b5 100644 --- a/kern/thread.c +++ b/kern/thread.c @@ -251,7 +251,7 @@ thread_schedule(void) } void -thread_reschedule(void) +thread_intr_schedule(void) { struct thread_runq *runq; struct thread *thread; @@ -267,6 +267,22 @@ thread_reschedule(void) } void +thread_preempt_schedule(void) +{ + struct thread_runq *runq; + struct thread *thread; + + runq = thread_runq_local(); + thread = runq->current; + assert(thread != NULL); + + if ((thread->preempt == 0)) { + assert(!cpu_intr_enabled()); + thread_schedule(); + } +} + +void thread_tick(void) { struct thread_runq *runq; |