From 531773ce4ca0c463f9433676de05e7f6c8daa87c Mon Sep 17 00:00:00 2001 From: Davin McCall Date: Mon, 19 Mar 2018 19:01:56 +0000 Subject: [PATCH] When stopping dependents, also release waits_for/soft dependencies. waits for / soft dependencies should treat a start failure or other dependency stop as a prompt to check for start conditions having been met, after the dependency link is unchained. --- src/service.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/service.cc b/src/service.cc index 5195c56..bfa5924 100644 --- a/src/service.cc +++ b/src/service.cc @@ -536,6 +536,17 @@ bool service_record::stop_dependents() noexcept dept->get_from()->prop_stop = true; services->add_prop_queue(dept->get_from()); } + else { + // waits-for or soft dependency: + if (dept->waiting_on) { + dept->waiting_on = false; + dept->get_from()->dependency_started(); + } + if (dept->holding_acq) { + dept->holding_acq = false; + release(); + } + } } return all_deps_stopped; -- 2.25.1