Skip to content

Commit 1878040

Browse files
Track where graph node should be running
1 parent 3adceb4 commit 1878040

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/runner/graph.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,25 @@ use std::fmt::{self, Debug};
3030
use std::sync::Arc;
3131

3232
enum 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

3843
impl 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

Comments
 (0)