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_upcall.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/rt/rust_upcall.cpp') diff --git a/src/rt/rust_upcall.cpp b/src/rt/rust_upcall.cpp index 01eaf744..7f9f0db1 100644 --- a/src/rt/rust_upcall.cpp +++ b/src/rt/rust_upcall.cpp @@ -183,6 +183,14 @@ extern "C" CDECL void upcall_yield(rust_task *task) { task->yield(1); } +extern "C" CDECL void upcall_sleep(rust_task *task, size_t time_in_us) { + LOG_UPCALL_ENTRY(task); + task->log(rust_log::UPCALL | rust_log::TASK, "elapsed %d", + task->yield_timer.get_elapsed_time()); + task->log(rust_log::UPCALL | rust_log::TASK, "sleep %d us", time_in_us); + task->yield(2, time_in_us); +} + extern "C" CDECL void upcall_join(rust_task *task, maybe_proxy *target) { LOG_UPCALL_ENTRY(task); -- cgit v1.2.3