diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-28 07:25:49 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2013-02-28 07:25:49 -0800 |
| commit | d2c4b6492dbccc1bb60f163ac583467bc63abce6 (patch) | |
| tree | d17faf8bcf8622272d8f8f3d31ef8e0fd795031d /src/libcore/task | |
| parent | 3953bdd812d73a51f9a7be4a1c57c60d56c6aa1a (diff) | |
| parent | b171d0ef7b68fed961597d38e6a474d748243987 (diff) | |
| download | rust-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.rs | 10 |
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); } |
