unit: retroactively start dependencies for job-less units too
This commit is contained in:
parent
ee5f3479e2
commit
7e6e7b06e5
17
src/unit.c
17
src/unit.c
|
@ -949,6 +949,7 @@ static void retroactively_stop_dependencies(Unit *u) {
|
||||||
|
|
||||||
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
|
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
|
||||||
dual_timestamp ts;
|
dual_timestamp ts;
|
||||||
|
bool unexpected;
|
||||||
|
|
||||||
assert(u);
|
assert(u);
|
||||||
assert(os < _UNIT_ACTIVE_STATE_MAX);
|
assert(os < _UNIT_ACTIVE_STATE_MAX);
|
||||||
|
@ -983,7 +984,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns) {
|
||||||
path_unit_notify(u, ns);
|
path_unit_notify(u, ns);
|
||||||
|
|
||||||
if (u->meta.job) {
|
if (u->meta.job) {
|
||||||
bool unexpected = false;
|
unexpected = false;
|
||||||
|
|
||||||
if (u->meta.job->state == JOB_WAITING)
|
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
|
* requested by a job, then let's retroactively start
|
||||||
* or stop dependencies */
|
* or stop dependencies */
|
||||||
|
|
||||||
if (unexpected) {
|
} else
|
||||||
if (UNIT_IS_INACTIVE_OR_DEACTIVATING(os) && UNIT_IS_ACTIVE_OR_ACTIVATING(ns))
|
unexpected = true;
|
||||||
retroactively_start_dependencies(u);
|
|
||||||
else if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
|
if (unexpected) {
|
||||||
retroactively_stop_dependencies(u);
|
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 */
|
/* Some names are special */
|
||||||
|
|
Loading…
Reference in New Issue