summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-13 02:17:53 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-13 02:17:53 +0200
commit7e6e7b06e58af6428aa1ae18ffd26dabed8f3466 (patch)
tree90ecd2985a66358c6826624b2a0e2aa6ec3162d8 /src
parentee5f3479e27286574c34056d4dd16b6d8029e817 (diff)
unit: retroactively start dependencies for job-less units too
Diffstat (limited to 'src')
-rw-r--r--src/unit.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/unit.c b/src/unit.c
index f786359fac..3f42f0fa11 100644
--- a/src/unit.c
+++ b/src/unit.c
@@ -949,6 +949,7 @@ static void retroactively_stop_dependencies(Unit *u) {
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
dual_timestamp ts;
+ bool unexpected;
assert(u);
assert(os < _UNIT_ACTIVE_STATE_MAX);
@@ -983,7 +984,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
path_unit_notify(u, ns);
if (u->meta.job) {
- bool unexpected = false;
+ unexpected = false;
if (u->meta.job->state == JOB_WAITING)
@@ -1046,12 +1047,14 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
* requested by a job, then let's retroactively start
* or stop dependencies */
- if (unexpected) {
- if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns))
- retroactively_start_dependencies(u);
- else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
- retroactively_stop_dependencies(u);
- }
+ } else
+ unexpected = true;
+
+ if (unexpected) {
+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns))
+ retroactively_start_dependencies(u);
+ else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
+ retroactively_stop_dependencies(u);
}
/* Some names are special */