X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fjob.c;h=0dd161c1c58104313214d6b01c2bef7fca019276;hb=5b1869eaa22e365ab6595924fe96549b279b5ebc;hp=85f77e8f0d8335959cbb26a23648f2bf237313b2;hpb=c2756a68401102786be343712c0c35acbd73d28d;p=elogind.git diff --git a/src/core/job.c b/src/core/job.c index 85f77e8f0..0dd161c1c 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -35,7 +35,7 @@ #include "log.h" #include "dbus-job.h" #include "special.h" -#include "sync.h" +#include "async.h" #include "virt.h" JobBusClient* job_bus_client_new(DBusConnection *connection, const char *name) { @@ -99,10 +99,10 @@ void job_free(Job *j) { assert(!j->object_list); if (j->in_run_queue) - LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); + LIST_REMOVE(run_queue, j->manager->run_queue, j); if (j->in_dbus_queue) - LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j); + LIST_REMOVE(dbus_queue, j->manager->dbus_job_queue, j); if (j->timer_watch.type != WATCH_INVALID) { assert(j->timer_watch.type == WATCH_JOB_TIMER); @@ -114,7 +114,7 @@ void job_free(Job *j) { } while ((cl = j->bus_client_list)) { - LIST_REMOVE(JobBusClient, client, j->bus_client_list, cl); + LIST_REMOVE(client, j->bus_client_list, cl); free(cl); } free(j); @@ -267,9 +267,9 @@ JobDependency* job_dependency_new(Job *subject, Job *object, bool matters, bool l->conflicts = conflicts; if (subject) - LIST_PREPEND(JobDependency, subject, subject->subject_list, l); + LIST_PREPEND(subject, subject->subject_list, l); - LIST_PREPEND(JobDependency, object, object->object_list, l); + LIST_PREPEND(object, object->object_list, l); return l; } @@ -278,9 +278,9 @@ void job_dependency_free(JobDependency *l) { assert(l); if (l->subject) - LIST_REMOVE(JobDependency, subject, l->subject->subject_list, l); + LIST_REMOVE(subject, l->subject->subject_list, l); - LIST_REMOVE(JobDependency, object, l->object->object_list, l); + LIST_REMOVE(object, l->object->object_list, l); free(l); } @@ -416,7 +416,7 @@ int job_type_merge_and_collapse(JobType *a, JobType b, Unit *u) { return 0; } -bool job_is_runnable(Job *j) { +static bool job_is_runnable(Job *j) { Iterator i; Unit *other; @@ -491,7 +491,7 @@ int job_run_and_invalidate(Job *j) { assert(j->type < _JOB_TYPE_MAX_IN_TRANSACTION); assert(j->in_run_queue); - LIST_REMOVE(Job, run_queue, j->manager->run_queue, j); + LIST_REMOVE(run_queue, j->manager->run_queue, j); j->in_run_queue = false; if (j->state != JOB_WAITING) @@ -910,7 +910,7 @@ void job_add_to_run_queue(Job *j) { if (j->in_run_queue) return; - LIST_PREPEND(Job, run_queue, j->manager->run_queue, j); + LIST_PREPEND(run_queue, j->manager->run_queue, j); j->in_run_queue = true; } @@ -925,7 +925,7 @@ void job_add_to_dbus_queue(Job *j) { * job might just have been created and not yet assigned to a * connection/client. */ - LIST_PREPEND(Job, dbus_queue, j->manager->dbus_job_queue, j); + LIST_PREPEND(dbus_queue, j->manager->dbus_job_queue, j); j->in_dbus_queue = true; } @@ -1097,6 +1097,9 @@ void job_shutdown_magic(Job *j) { if (!unit_has_name(j->unit, SPECIAL_SHUTDOWN_TARGET)) return; + /* In case messages on console has been disabled on boot */ + j->unit->manager->no_console_output = false; + if (detect_container(NULL) > 0) return;