This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).

This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
This commit is contained in:
Eric Holk
2011-05-31 17:44:54 -07:00
committed by Graydon Hoare
parent 1595c9d767
commit d1857d30fc
30 changed files with 419 additions and 443 deletions

View File

@@ -354,6 +354,16 @@ task_sleep(rust_task *task, size_t time_in_us) {
upcall_sleep(task, time_in_us);
}
extern "C" CDECL void
task_yield(rust_task *task) {
task->yield(1);
}
extern "C" CDECL void
task_join(rust_task *task, rust_task *join_task) {
// TODO
}
/* Debug builtins for std.dbg. */
static void