aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_task.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rt/rust_task.h')
-rw-r--r--src/rt/rust_task.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h
index 7b0cfef7..26ba872d 100644
--- a/src/rt/rust_task.h
+++ b/src/rt/rust_task.h
@@ -7,7 +7,6 @@
#include "util/array_list.h"
-
struct
rust_task : public maybe_proxy<rust_task>,
public dom_owned<rust_task>
@@ -22,11 +21,11 @@ rust_task : public maybe_proxy<rust_task>,
// Fields known only to the runtime.
const char *const name;
- ptr_vec<rust_task> *state;
+ rust_task_list *state;
rust_cond *cond;
const char *cond_name;
rust_task *supervisor; // Parent-link for failure propagation.
- size_t idx;
+ int32_t list_index;
size_t gc_alloc_thresh;
size_t gc_alloc_accum;
@@ -50,6 +49,7 @@ rust_task : public maybe_proxy<rust_task>,
// Only a pointer to 'name' is kept, so it must live as long as this task.
rust_task(rust_dom *dom,
+ rust_task_list *state,
rust_task *spawner,
const char *name);
@@ -71,8 +71,7 @@ rust_task : public maybe_proxy<rust_task>,
void *realloc(void *data, size_t sz, bool gc_mem=false);
void free(void *p, bool gc_mem=false);
- const char *state_str();
- void transition(ptr_vec<rust_task> *svec, ptr_vec<rust_task> *dvec);
+ void transition(rust_task_list *src, rust_task_list *dst);
void block(rust_cond *on, const char* name);
void wakeup(rust_cond *from);