chiark / gitweb /
manager: automatically GC unreferenced units
[elogind.git] / job.c
diff --git a/job.c b/job.c
index c1b00714ec995de43c366abb872dc53654ed9a5e..3210bb42c28d9ea10dcbae0d8fef68e7a6acd638 100644 (file)
--- a/job.c
+++ b/job.c
@@ -58,8 +58,10 @@ void job_free(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;