@@ -72,6 +72,7 @@ use either::{Either, Left, Right};
72
72
use option:: { Option , Some , None } ;
73
73
use prelude:: * ;
74
74
use rt:: task:: Task ;
75
+ use task:: spawn:: Taskgroup ;
75
76
use to_bytes:: IterBytes ;
76
77
use unstable:: atomics:: { AtomicUint , Relaxed } ;
77
78
use unstable:: sync:: { UnsafeAtomicRcBox , LittleLock } ;
@@ -474,7 +475,7 @@ impl Death {
474
475
}
475
476
476
477
/// Collect failure exit codes from children and propagate them to a parent.
477
- pub fn collect_failure ( & mut self , mut success : bool ) {
478
+ pub fn collect_failure ( & mut self , mut success : bool , group : Option < Taskgroup > ) {
478
479
// This may run after the task has already failed, so even though the
479
480
// task appears to need to be killed, the scheduler should not fail us
480
481
// when we block to unwrap.
@@ -484,6 +485,10 @@ impl Death {
484
485
rtassert ! ( self . unkillable == 0 ) ;
485
486
self . unkillable = 1 ;
486
487
488
+ // FIXME(#7544): See corresponding fixme at the callsite in task.rs.
489
+ // NB(#8192): Doesn't work with "let _ = ..."
490
+ { use util; util:: ignore ( group) ; }
491
+
487
492
// Step 1. Decide if we need to collect child failures synchronously.
488
493
do self. on_exit . take_map |on_exit| {
489
494
if success {
0 commit comments