about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-02-06 18:00:49 -0800
committerBrian Anderson <banderson@mozilla.com>2012-02-08 15:33:40 -0800
commitad80823a6ce301e5133e1ba9aff1560f0a9c2886 (patch)
tree6fd6689fb82d117b225add606ee737dee3ad736f
parentc76b81cddf7cd7b4aaebbe64bbf8c6565e3ce682 (diff)
downloadrust-ad80823a6ce301e5133e1ba9aff1560f0a9c2886.tar.gz
rust-ad80823a6ce301e5133e1ba9aff1560f0a9c2886.zip
rt: Introduce scheduler ids
-rw-r--r--src/rt/rust_internal.h1
-rw-r--r--src/rt/rust_kernel.cpp2
-rw-r--r--src/rt/rust_scheduler.cpp6
-rw-r--r--src/rt/rust_scheduler.h5
4 files changed, 10 insertions, 4 deletions
diff --git a/src/rt/rust_internal.h b/src/rt/rust_internal.h
index beb772edbe2..30608ceac95 100644
--- a/src/rt/rust_internal.h
+++ b/src/rt/rust_internal.h
@@ -61,6 +61,7 @@ struct stk_seg;
 struct type_desc;
 struct frame_glue_fns;
 
+typedef intptr_t rust_sched_id;
 typedef intptr_t rust_task_id;
 typedef intptr_t rust_port_id;
 
diff --git a/src/rt/rust_kernel.cpp b/src/rt/rust_kernel.cpp
index 8f41182d791..3d74571c373 100644
--- a/src/rt/rust_kernel.cpp
+++ b/src/rt/rust_kernel.cpp
@@ -17,7 +17,7 @@ rust_kernel::rust_kernel(rust_srv *srv, size_t num_threads) :
     env(srv->env)
 {
     sched = new (this, "rust_scheduler")
-        rust_scheduler(this, srv, num_threads);
+        rust_scheduler(this, srv, num_threads, 0);
     live_schedulers = 1;
 }
 
diff --git a/src/rt/rust_scheduler.cpp b/src/rt/rust_scheduler.cpp
index 666733a4318..a520d58c6aa 100644
--- a/src/rt/rust_scheduler.cpp
+++ b/src/rt/rust_scheduler.cpp
@@ -3,12 +3,14 @@
 
 rust_scheduler::rust_scheduler(rust_kernel *kernel,
 			       rust_srv *srv,
-			       size_t num_threads) :
+			       size_t num_threads,
+			       rust_sched_id id) :
     kernel(kernel),
     srv(srv),
     env(srv->env),
     live_threads(num_threads),
-    num_threads(num_threads)
+    num_threads(num_threads),
+    id(id)
 {
     isaac_init(kernel, &rctx);
     create_task_threads();
diff --git a/src/rt/rust_scheduler.h b/src/rt/rust_scheduler.h
index 16c1e04747d..47dc0a811a5 100644
--- a/src/rt/rust_scheduler.h
+++ b/src/rt/rust_scheduler.h
@@ -19,6 +19,8 @@ private:
     array_list<rust_task_thread *> threads;
     const size_t num_threads;
 
+    rust_sched_id id;
+
     void create_task_threads();
     void destroy_task_threads();
 
@@ -26,7 +28,8 @@ private:
     void destroy_task_thread(rust_task_thread *thread);
 
 public:
-    rust_scheduler(rust_kernel *kernel, rust_srv *srv, size_t num_threads);
+    rust_scheduler(rust_kernel *kernel, rust_srv *srv, size_t num_threads,
+		   rust_sched_id id);
     ~rust_scheduler();
 
     void start_task_threads();