Commit a013b84b authored by Lennart Poettering's avatar Lennart Poettering
Browse files

unit: avoid assert on daemon reload

parent 6dded4c7
......@@ -543,6 +543,8 @@ static void manager_clear_jobs_and_units(Manager *m) {
assert(m);
manager_dispatch_cleanup_queue(m);
while ((j = hashmap_first(m->transaction_jobs)))
job_free(j);
......@@ -555,7 +557,6 @@ void manager_free(Manager *m) {
assert(m);
manager_dispatch_cleanup_queue(m);
manager_clear_jobs_and_units(m);
for (c = 0; c < _UNIT_TYPE_MAX; c++)
......
......@@ -319,6 +319,10 @@ void unit_free(Unit *u) {
bus_unit_send_removed_signal(u);
if (u->meta.load_state != UNIT_STUB)
if (UNIT_VTABLE(u)->done)
UNIT_VTABLE(u)->done(u);
/* Detach from next 'bigger' objects */
SET_FOREACH(t, u->meta.names, i)
hashmap_remove_value(u->meta.manager->units, t, u);
......@@ -344,10 +348,6 @@ void unit_free(Unit *u) {
if (u->meta.job)
job_free(u->meta.job);
if (u->meta.load_state != UNIT_STUB)
if (UNIT_VTABLE(u)->done)
UNIT_VTABLE(u)->done(u);
cgroup_bonding_free_list(u->meta.cgroup_bondings);
for (d = 0; d < _UNIT_DEPENDENCY_MAX; d++)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment