about summary refs log tree commit diff
path: root/src/rt/rust.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-02-06 21:06:12 -0800
committerBrian Anderson <banderson@mozilla.com>2012-02-08 15:42:47 -0800
commit7685e5de941ec0a482218095e4d6cdd2e53375d8 (patch)
treea12b6b1b82c2a068a2ae3264b17c3a0fb28163cf /src/rt/rust.cpp
parentad80823a6ce301e5133e1ba9aff1560f0a9c2886 (diff)
downloadrust-7685e5de941ec0a482218095e4d6cdd2e53375d8.tar.gz
rust-7685e5de941ec0a482218095e4d6cdd2e53375d8.zip
rt: Refactor the rust_kernel interface a bit
Diffstat (limited to 'src/rt/rust.cpp')
-rw-r--r--src/rt/rust.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/rt/rust.cpp b/src/rt/rust.cpp
index dacbcee1045..121f3d4bcfc 100644
--- a/src/rt/rust.cpp
+++ b/src/rt/rust.cpp
@@ -78,8 +78,9 @@ rust_start(uintptr_t main_fn, int argc, char **argv, void* crate_map) {
     check_claims = env->check_claims;
 
     rust_srv *srv = new rust_srv(env);
-    rust_kernel *kernel = new rust_kernel(srv, env->num_sched_threads);
-    rust_scheduler *sched = kernel->get_default_scheduler();
+    rust_kernel *kernel = new rust_kernel(srv);
+    rust_sched_id sched_id = kernel->create_scheduler(env->num_sched_threads);
+    rust_scheduler *sched = kernel->get_scheduler_by_id(sched_id);
     rust_task_id root_id = sched->create_task(NULL, "main", MAIN_STACK_SIZE);
     rust_task *root_task = kernel->get_task_by_id(root_id);
     I(kernel, root_task != NULL);
@@ -98,7 +99,7 @@ rust_start(uintptr_t main_fn, int argc, char **argv, void* crate_map) {
     root_task->deref();
     root_task = NULL;
 
-    int ret = kernel->start_schedulers();
+    int ret = kernel->wait_for_schedulers();
     delete args;
     delete kernel;
     delete srv;