X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=job.c;h=2f7912d262439d46f4668eb9566802345ff2f485;hp=87bcd289d98eafc8185fcbc2f194172eb431acf2;hb=11dd41ce4b465f6260ce68aa050a488f88f694eb;hpb=a66d02c3290008d50b2b52f84cfbf46a546ba831 diff --git a/job.c b/job.c index 87bcd289d..2f7912d26 100644 --- a/job.c +++ b/job.c @@ -25,31 +25,14 @@ Job* job_new(Manager *m, JobType type, Name *name) { return j; } -int job_link(Job *j) { - int r; - - assert(j); - assert(!j->linked); - - if ((r = hashmap_put(j->manager->jobs, UINT32_TO_PTR(j->id), j)) < 0) - return r; - - j->name->meta.job = j; - - j->linked = true; - - return 0; -} - void job_free(Job *j) { assert(j); /* Detach from next 'bigger' objects */ if (j->linked) { - assert(j->name); - assert(j->name->meta.job == j); - j->name->meta.job = NULL; + if (j->name->meta.job == j) + j->name->meta.job = NULL; hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id)); } @@ -64,25 +47,25 @@ void job_free(Job *j) { void job_dump(Job *j, FILE*f) { static const char* const job_type_table[_JOB_TYPE_MAX] = { - [JOB_START] = "START", - [JOB_STOP] = "STOP", - [JOB_VERIFY_STARTED] = "VERIFY_STARTED", - [JOB_RELOAD] = "RELOAD", - [JOB_RESTART] = "RESTART", - [JOB_TRY_RESTART] = "TRY_RESTART", - [JOB_RESTART_FINISH] = "RESTART_FINISH" + [JOB_START] = "start", + [JOB_STOP] = "stop", + [JOB_VERIFY_STARTED] = "verify-started", + [JOB_RELOAD] = "reload", + [JOB_RESTART] = "restart", + [JOB_TRY_RESTART] = "try-restart", + [JOB_RESTART_FINISH] = "restart-finish" }; static const char* const job_state_table[_JOB_STATE_MAX] = { - [JOB_WAITING] = "WAITING", - [JOB_RUNNING] = "RUNNING", - [JOB_DONE] = "DONE" + [JOB_WAITING] = "waiting", + [JOB_RUNNING] = "running", + [JOB_DONE] = "done" }; assert(j); assert(f); - fprintf(f, "Job %u: %s → %s in state %s\n", + fprintf(f, "Job %u (%s) → %s in state %s\n", j->id, name_id(j->name), job_type_table[j->type],