about summary refs log tree commit diff
path: root/src/libcore/task
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-02-28 07:25:49 -0800
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-02-28 07:25:49 -0800
commitd2c4b6492dbccc1bb60f163ac583467bc63abce6 (patch)
treed17faf8bcf8622272d8f8f3d31ef8e0fd795031d /src/libcore/task
parent3953bdd812d73a51f9a7be4a1c57c60d56c6aa1a (diff)
parentb171d0ef7b68fed961597d38e6a474d748243987 (diff)
downloadrust-d2c4b6492dbccc1bb60f163ac583467bc63abce6.tar.gz
rust-d2c4b6492dbccc1bb60f163ac583467bc63abce6.zip
Merge remote-tracking branch 'remotes/origin/incoming' into incoming
Diffstat (limited to 'src/libcore/task')
-rw-r--r--src/libcore/task/spawn.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libcore/task/spawn.rs b/src/libcore/task/spawn.rs
index 5110f70ff11..bf7209f9fc3 100644
--- a/src/libcore/task/spawn.rs
+++ b/src/libcore/task/spawn.rs
@@ -308,8 +308,11 @@ struct TCB {
     mut ancestors: AncestorList,
     is_main:       bool,
     notifier:      Option<AutoNotify>,
+}
+
+impl Drop for TCB {
     // Runs on task exit.
-    drop {
+    fn finalize(&self) {
         unsafe {
             // If we are failing, the whole taskgroup needs to die.
             if rt::rust_task_is_unwinding(self.me) {
@@ -353,7 +356,10 @@ fn TCB(me: *rust_task, tasks: TaskGroupArc, ancestors: AncestorList,
 struct AutoNotify {
     notify_chan: Chan<TaskResult>,
     mut failed:  bool,
-    drop {
+}
+
+impl Drop for AutoNotify {
+    fn finalize(&self) {
         let result = if self.failed { Failure } else { Success };
         self.notify_chan.send(result);
     }