aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/rust_task.cpp')
-rw-r--r--src/rt/rust_task.cpp12
1 files changed, 9 insertions, 3 deletions
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());
}