summary refs log tree commit diff
path: root/src/rt/rust_task.h
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-03-02 16:33:24 -0800
committerBrian Anderson <banderson@mozilla.com>2012-03-02 16:33:33 -0800
commit04d9cc18a569f5d8a8b7c2c07a42259af41d7cb3 (patch)
treef8a14162b39a7a355dc2bdda74551771483f603d /src/rt/rust_task.h
parentf4ce965ce70f7f7ffa62df721d083cb3eafeb19d (diff)
rt: Protect rust_task::supervisor with a lock
Diffstat (limited to 'src/rt/rust_task.h')
-rw-r--r--src/rt/rust_task.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h
index 7063c97f77b..28446d9048a 100644
--- a/src/rt/rust_task.h
+++ b/src/rt/rust_task.h
@@ -71,7 +71,6 @@ rust_task : public kernel_owned<rust_task>, rust_cond
     rust_task_list *state;
     rust_cond *cond;
     const char *cond_name;
-    rust_task *supervisor;     // Parent-link for failure propagation.
     int32_t list_index;
 
     rust_port_id next_port_id;
@@ -120,6 +119,9 @@ private:
 
     rust_port_selector port_selector;
 
+    lock_and_signal supervisor_lock;
+    rust_task *supervisor;     // Parent-link for failure propagation.
+
     // Called when the atomic refcount reaches zero
     void delete_this();