Added support for task sleeping in the scheduler.

This commit is contained in:
Michael Bebenita
2010-08-11 21:23:34 -07:00
parent 88d9a79ac8
commit 988695a96c
12 changed files with 154 additions and 12 deletions

View File

@@ -309,10 +309,16 @@ rust_task::run_on_resume(uintptr_t glue)
}
void
rust_task::yield(size_t nargs)
{
rust_task::yield(size_t nargs) {
yield(nargs, 0);
}
void
rust_task::yield(size_t nargs, size_t time_in_us) {
log(rust_log::TASK,
"task %s @0x%" PRIxPTR " yielding", name, this);
"task %s @0x%" PRIxPTR " yielding for %d us",
name, this, time_in_us);
yield_timer.reset(time_in_us);
run_after_return(nargs, dom->root_crate->get_yield_glue());
}