about summary refs log tree commit diff
path: root/src/libstd/rt/task.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-13 04:59:20 -0700
committerbors <bors@rust-lang.org>2013-08-13 04:59:20 -0700
commitf02cc6bf0a276115a31354b1c1530e6fe9eb4d58 (patch)
treef5b4895221d2354eae0a71cdf1cb99eb50bac693 /src/libstd/rt/task.rs
parentc99b2b932f1da9b1746387d8968476240dadf204 (diff)
parent5ac8c57bd420d61ed80a07746ab1a75e4062383f (diff)
downloadrust-f02cc6bf0a276115a31354b1c1530e6fe9eb4d58.tar.gz
rust-f02cc6bf0a276115a31354b1c1530e6fe9eb4d58.zip
auto merge of #8411 : bblum/rust/assorted-fixes, r=brson
Each commit is pretty much what it says on the tin. r anybody.
Diffstat (limited to 'src/libstd/rt/task.rs')
-rw-r--r--src/libstd/rt/task.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs
index b50e794cce0..c669f25d8b7 100644
--- a/src/libstd/rt/task.rs
+++ b/src/libstd/rt/task.rs
@@ -253,12 +253,10 @@ impl Task {
             }
         }
 
-        // FIXME(#7544): We pass the taskgroup into death so that it can be
-        // dropped while the unkillable counter is set. This should not be
-        // necessary except for an extraneous clone() in task/spawn.rs that
-        // causes a killhandle to get dropped, which mustn't receive a kill
-        // signal since we're outside of the unwinder's try() scope.
-        // { let _ = self.taskgroup.take(); }
+        // NB. We pass the taskgroup into death so that it can be dropped while
+        // the unkillable counter is set. This is necessary for when the
+        // taskgroup destruction code drops references on KillHandles, which
+        // might require using unkillable (to synchronize with an unwrapper).
         self.death.collect_failure(!self.unwinder.unwinding, self.taskgroup.take());
         self.destroyed = true;
     }