diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-02-06 18:00:49 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-02-08 15:33:40 -0800 |
| commit | ad80823a6ce301e5133e1ba9aff1560f0a9c2886 (patch) | |
| tree | 6fd6689fb82d117b225add606ee737dee3ad736f | |
| parent | c76b81cddf7cd7b4aaebbe64bbf8c6565e3ce682 (diff) | |
| download | rust-ad80823a6ce301e5133e1ba9aff1560f0a9c2886.tar.gz rust-ad80823a6ce301e5133e1ba9aff1560f0a9c2886.zip | |
rt: Introduce scheduler ids
| -rw-r--r-- | src/rt/rust_internal.h | 1 | ||||
| -rw-r--r-- | src/rt/rust_kernel.cpp | 2 | ||||
| -rw-r--r-- | src/rt/rust_scheduler.cpp | 6 | ||||
| -rw-r--r-- | src/rt/rust_scheduler.h | 5 |
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(); |
