diff options
Diffstat (limited to 'crates/driver/src/driver.rs')
-rw-r--r-- | crates/driver/src/driver.rs | 5 |
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))) |