static bool unit_process_job(Job *j, UnitActiveState ns, bool reload_success) {
bool unexpected = false;
- JobResult result;
assert(j);
assert(j->installed);
case JOB_VERIFY_ACTIVE:
if (UNIT_IS_ACTIVE_OR_RELOADING(ns))
- job_finish_and_invalidate(j, JOB_DONE, true, false);
+ job_finish_and_invalidate(j, JOB_DONE, /* recursive = */ true, /* already = */ false);
else if (j->state == JOB_RUNNING && ns != UNIT_ACTIVATING) {
unexpected = true;
- if (UNIT_IS_INACTIVE_OR_FAILED(ns)) {
- if (ns == UNIT_FAILED)
- result = JOB_FAILED;
- else
- result = JOB_DONE;
-
- job_finish_and_invalidate(j, result, true, false);
- }
+ if (UNIT_IS_INACTIVE_OR_FAILED(ns))
+ job_finish_and_invalidate(j, ns == UNIT_FAILED ? JOB_FAILED : JOB_DONE, /* recursive = */ true, /* already = */ false);
}
break;
if (j->state == JOB_RUNNING) {
if (ns == UNIT_ACTIVE)
- job_finish_and_invalidate(j, reload_success ? JOB_DONE : JOB_FAILED, true, false);
+ job_finish_and_invalidate(j, reload_success ? JOB_DONE : JOB_FAILED, /* recursive = */ true, /* already = */ false);
else if (!IN_SET(ns, UNIT_ACTIVATING, UNIT_RELOADING, UNIT_REFRESHING)) {
unexpected = true;
- job_finish_and_invalidate(j, reload_success ? JOB_CANCELED : JOB_FAILED, true, false);
+ job_finish_and_invalidate(j, reload_success ? JOB_CANCELED : JOB_FAILED, /* recursive = */ true, /* already = */ false);
}
}
case JOB_RESTART:
if (UNIT_IS_INACTIVE_OR_FAILED(ns))
- job_finish_and_invalidate(j, JOB_DONE, true, false);
+ job_finish_and_invalidate(j, JOB_DONE, /* recursive = */ true, /* already = */ false);
else if (j->state == JOB_RUNNING && ns != UNIT_DEACTIVATING) {
unexpected = true;
- job_finish_and_invalidate(j, JOB_FAILED, true, false);
+ job_finish_and_invalidate(j, JOB_FAILED, /* recursive = */ true, /* already = */ false);
}
break;