From 988695a96cee1eb825435260a1874b8daa0e590a Mon Sep 17 00:00:00 2001 From: Michael Bebenita Date: Wed, 11 Aug 2010 21:23:34 -0700 Subject: Added support for task sleeping in the scheduler. --- src/rt/rust_task.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/rt/rust_task.cpp') diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index aca8bca7..cd38433e 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -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()); } -- cgit v1.2.3