#include "load-fragment.h"
#include "load-dropin.h"
#include "log.h"
+#include "dbus-job.h"
Job* job_new(Manager *m, JobType type, Unit *unit) {
Job *j;
if (j->installed) {
bus_job_send_removed_signal(j);
- if (j->unit->meta.job == j)
+ if (j->unit->meta.job == j) {
j->unit->meta.job = NULL;
+ unit_add_to_gc_queue(j->unit);
+ }
hashmap_remove(j->manager->jobs, UINT32_TO_PTR(j->id));
j->installed = false;
static const char* const job_mode_table[_JOB_MODE_MAX] = {
[JOB_FAIL] = "fail",
- [JOB_REPLACE] = "replace"
+ [JOB_REPLACE] = "replace",
+ [JOB_ISOLATE] = "isolate"
};
DEFINE_STRING_TABLE_LOOKUP(job_mode, JobMode);