diff options
| author | Michael Bebenita <[email protected]> | 2010-09-10 01:21:29 -0700 |
|---|---|---|
| committer | Michael Bebenita <[email protected]> | 2010-09-10 14:38:31 -0700 |
| commit | a493350eb5ab38ba8a6563f3eb4a090d257b0d3a (patch) | |
| tree | dc984eaa28a55de9f05db0b961a0e67f80ca35ef /src/rt/rust_dom.h | |
| parent | Added lock_and_signal::signal_all(), and made the rust_kernel::join() use wai... (diff) | |
| download | rust-a493350eb5ab38ba8a6563f3eb4a090d257b0d3a.tar.xz rust-a493350eb5ab38ba8a6563f3eb4a090d257b0d3a.zip | |
Cleanup, refactoring, and some runtime tests.
Diffstat (limited to 'src/rt/rust_dom.h')
| -rw-r--r-- | src/rt/rust_dom.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/rt/rust_dom.h b/src/rt/rust_dom.h index 3f90bb67..8aa24192 100644 --- a/src/rt/rust_dom.h +++ b/src/rt/rust_dom.h @@ -18,10 +18,14 @@ struct rust_dom : public kernel_owned<rust_dom>, rc_base<rust_dom> memory_region local_region; memory_region synchronized_region; const char *const name; - ptr_vec<rust_task> running_tasks; - ptr_vec<rust_task> blocked_tasks; - ptr_vec<rust_task> dead_tasks; + + rust_task_list newborn_tasks; + rust_task_list running_tasks; + rust_task_list blocked_tasks; + rust_task_list dead_tasks; + ptr_vec<rust_crate_cache> caches; + randctx rctx; rust_task *root_task; rust_task *curr_task; @@ -71,10 +75,7 @@ struct rust_dom : public kernel_owned<rust_dom>, rc_base<rust_dom> #endif rust_crate_cache *get_cache(rust_crate const *crate); - size_t n_live_tasks(); - void add_task_to_state_vec(ptr_vec<rust_task> *v, rust_task *task); - void remove_task_from_state_vec(ptr_vec<rust_task> *v, rust_task *task); - const char *state_vec_name(ptr_vec<rust_task> *v); + size_t number_of_live_tasks(); void reap_dead_tasks(); rust_task *schedule_task(); @@ -83,6 +84,8 @@ struct rust_dom : public kernel_owned<rust_dom>, rc_base<rust_dom> void log_state(); static void log_all_state(); + + rust_task *create_task(rust_task *spawner, const char *name); }; // |