@@ -30,17 +30,25 @@ use std::fmt::{self, Debug};
3030use std:: sync:: Arc ;
3131
3232enum Node {
33- Task { task : Arc < Task > , running : bool } ,
33+ // Running stores the worker that should be running this task, purely for
34+ // printing.
35+ Task {
36+ task : Arc < Task > ,
37+ running : Option < String > ,
38+ } ,
3439 CrateCompleted ,
3540 Root ,
3641}
3742
3843impl Debug for Node {
3944 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
4045 match * self {
41- Node :: Task { ref task, running } => {
42- if running {
43- write ! ( f, "running: {:?}" , task) ?;
46+ Node :: Task {
47+ ref task,
48+ ref running,
49+ } => {
50+ if let Some ( worker) = running {
51+ write ! ( f, "running on {}: {:?}" , worker, task) ?;
4452 } else {
4553 write ! ( f, "{:?}" , task) ?;
4654 }
@@ -84,7 +92,7 @@ impl TasksGraph {
8492 self . add_node (
8593 Node :: Task {
8694 task : Arc :: new ( task) ,
87- running : false ,
95+ running : None ,
8896 } ,
8997 deps,
9098 )
@@ -133,7 +141,7 @@ impl TasksGraph {
133141 let mut already_executed = false ;
134142 if let Node :: Task {
135143 ref task,
136- running : false ,
144+ running : None ,
137145 } = self . graph [ node]
138146 {
139147 if !task. needs_exec ( ex, db) {
@@ -168,12 +176,14 @@ impl TasksGraph {
168176
169177 let mut delete = false ;
170178 let result = match self . graph [ node] {
171- Node :: Task { running : true , .. } => WalkResult :: Blocked ,
179+ Node :: Task {
180+ running : Some ( _) , ..
181+ } => WalkResult :: Blocked ,
172182 Node :: Task {
173183 ref task,
174184 ref mut running,
175185 } => {
176- * running = true ;
186+ * running = Some ( worker . to_owned ( ) ) ;
177187 WalkResult :: Task ( node, task. clone ( ) )
178188 }
179189 Node :: CrateCompleted => {
0 commit comments