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.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/rt/rust_task.h') diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h index 27495e2c..b66ee5a1 100644 --- a/src/rt/rust_task.h +++ b/src/rt/rust_task.h @@ -29,6 +29,9 @@ rust_task : public maybe_proxy, size_t gc_alloc_thresh; size_t gc_alloc_accum; + // Keeps track of the last time this task yielded. + timer yield_timer; + // Rendezvous pointer for receiving data when blocked on a port. If we're // trying to read data and no data is available on any incoming channel, // we block on the port, and yield control to the scheduler. Since, we @@ -88,6 +91,9 @@ rust_task : public maybe_proxy, // Save callee-saved registers and return to the main loop. void yield(size_t nargs); + // Yields for a specified duration of time. + void yield(size_t nargs, size_t time_in_ms); + // Fail this task (assuming caller-on-stack is different task). void kill(); -- cgit v1.2.3