1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-30 23:21:22 +03:00

unit: avoid assert on daemon reload

This commit is contained in:
Lennart Poettering 2010-06-04 22:31:33 +02:00
parent 6dded4c705
commit a013b84b49
2 changed files with 6 additions and 5 deletions

View File

@ -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++)

View File

@ -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++)