From e475a15a74842bcf86294e7fafe3c97d0dae2127 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 17 Nov 2021 01:02:58 +0100 Subject: driver: pass force_run flag to runner --- crates/common/src/types.rs | 1 + crates/driver/src/driver.rs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/common/src/types.rs b/crates/common/src/types.rs index 222c79f..32b9182 100644 --- a/crates/common/src/types.rs +++ b/crates/common/src/types.rs @@ -43,6 +43,7 @@ pub struct Task { pub depends: HashSet, pub outputs: HashMap, pub pins: HashMap, + pub force_run: bool, } #[derive(Clone, Debug, Deserialize, Serialize, Default)] 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, Vec>>, + force_run: HashSet>, tasks_blocked: HashSet>, tasks_runnable: Vec>, tasks_running: HashMap)>, @@ -158,10 +159,11 @@ impl<'ctx> Driver<'ctx> { pub fn new( ctx: &'ctx Context, taskset: HashSet>, - _force_run: HashSet>, + force_run: HashSet>, ) -> Result { 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))) -- cgit v1.2.3