aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust_task.h
diff options
context:
space:
mode:
authorMichael Bebenita <[email protected]>2010-07-28 16:24:50 -0700
committerGraydon Hoare <[email protected]>2010-07-28 20:30:29 -0700
commit4ff8e15128f90d4e9e57897c48280c6f82bb8343 (patch)
tree86c3808e729b4f596c3c23e228738d3d25b108bc /src/rt/rust_task.h
parentRename rust_proxy_delegate to maybe_proxy, flesh out logic in it. Add strong-... (diff)
downloadrust-4ff8e15128f90d4e9e57897c48280c6f82bb8343.tar.xz
rust-4ff8e15128f90d4e9e57897c48280c6f82bb8343.zip
Move notification-messages out into their own file and unify into notify_message, make them use proxies, cache task proxies in dom.
Diffstat (limited to 'src/rt/rust_task.h')
-rw-r--r--src/rt/rust_task.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h
index 0c723a9d..34553b6c 100644
--- a/src/rt/rust_task.h
+++ b/src/rt/rust_task.h
@@ -4,6 +4,10 @@
#ifndef RUST_TASK_H
#define RUST_TASK_H
+
+#include "util/array_list.h"
+
+
struct
rust_task : public maybe_proxy<rust_task>,
public dom_owned<rust_task>
@@ -35,6 +39,9 @@ rust_task : public maybe_proxy<rust_task>,
// that location before waking us up.
uintptr_t* rendezvous_ptr;
+ // List of tasks waiting for this task to finish.
+ array_list<maybe_proxy<rust_task> *> tasks_waiting_to_join;
+
rust_alarm alarm;
rust_task(rust_dom *dom,
@@ -95,6 +102,7 @@ rust_task : public maybe_proxy<rust_task>,
// Notify tasks waiting for us that we are about to die.
void notify_waiting_tasks();
+ void notify_tasks_waiting_to_join();
uintptr_t get_fp();
uintptr_t get_previous_fp(uintptr_t fp);