summaryrefslogtreecommitdiffstats
path: root/crates/driver/src/driver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/driver/src/driver.rs')
-rw-r--r--crates/driver/src/driver.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/driver/src/driver.rs b/crates/driver/src/driver.rs
index 43820a2..dfdd6e9 100644
--- a/crates/driver/src/driver.rs
+++ b/crates/driver/src/driver.rs
@@ -148,6 +148,7 @@ enum SpawnResult {
#[derive(Debug)]
pub struct Driver<'ctx> {
rdeps: HashMap<TaskRef<'ctx>, Vec<TaskRef<'ctx>>>,
+ force_run: HashSet<TaskRef<'ctx>>,
tasks_blocked: HashSet<TaskRef<'ctx>>,
tasks_runnable: Vec<TaskRef<'ctx>>,
tasks_running: HashMap<RawFd, (UnixStream, TaskRef<'ctx>)>,
@@ -158,10 +159,11 @@ impl<'ctx> Driver<'ctx> {
pub fn new(
ctx: &'ctx Context,
taskset: HashSet<TaskRef<'ctx>>,
- _force_run: HashSet<TaskRef<'ctx>>,
+ force_run: HashSet<TaskRef<'ctx>>,
) -> Result<Self> {
let mut driver = Driver {
rdeps: Default::default(),
+ force_run,
tasks_blocked: Default::default(),
tasks_runnable: Default::default(),
tasks_running: Default::default(),
@@ -318,6 +320,7 @@ impl<'ctx> Driver<'ctx> {
depends: task_deps,
outputs: task_output,
pins: HashMap::from([rootfs.clone()]),
+ force_run: self.force_run.contains(task_ref),
};
Ok(SpawnResult::Spawned(runner.spawn(&task)))