1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-24 21:34:08 +03:00

job: define job_type_is_redundant() to idenity unnecessary jobs

This commit is contained in:
Lennart Poettering 2010-04-06 02:39:16 +02:00
parent 101d8e630e
commit 593fbdd21e
2 changed files with 40 additions and 0 deletions

39
job.c
View File

@ -265,6 +265,45 @@ bool job_type_is_conflicting(JobType a, JobType b) {
return (a == JOB_STOP) != (b == JOB_STOP);
}
bool job_type_is_redundant(JobType a, UnitActiveState b) {
switch (a) {
case JOB_START:
return
b == UNIT_ACTIVE ||
b == UNIT_ACTIVE_RELOADING;
case JOB_STOP:
return
b == UNIT_INACTIVE;
case JOB_VERIFY_ACTIVE:
return
b == UNIT_ACTIVE ||
b == UNIT_ACTIVE_RELOADING;
case JOB_RELOAD:
return
b == UNIT_ACTIVE_RELOADING;
case JOB_RELOAD_OR_START:
return
b == UNIT_ACTIVATING ||
b == UNIT_ACTIVE_RELOADING;
case JOB_RESTART:
return
b == UNIT_ACTIVATING;
case JOB_TRY_RESTART:
return
b == UNIT_ACTIVATING;
default:
assert_not_reached("Invalid job type");
}
}
bool job_is_runnable(Job *j) {
Iterator i;
Unit *other;

1
job.h
View File

@ -126,6 +126,7 @@ int job_type_merge(JobType *a, JobType b);
bool job_type_is_mergeable(JobType a, JobType b);
bool job_type_is_superset(JobType a, JobType b);
bool job_type_is_conflicting(JobType a, JobType b);
bool job_type_is_redundant(JobType a, UnitActiveState b);
bool job_is_runnable(Job *j);