summaryrefslogtreecommitdiff
path: root/src/home/homed-manager.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-03-08 11:52:09 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-03-08 12:00:22 +0100
commitf76e564437ef3d8bb270f2e1ee19a5156b0d8b83 (patch)
tree2f4319999263573ad57ef7ebb83391ad1cd817c6 /src/home/homed-manager.c
parentcf5366387b24633284ee92285ea64a282270d591 (diff)
downloadsystemd-f76e564437ef3d8bb270f2e1ee19a5156b0d8b83.tar.gz
homed: unref the sd_event object after the sources
Shouldn't make any difference, but let's first flush any pending messages, then unref the reference-counted stuff, and only at the end do the direct free calls.
Diffstat (limited to 'src/home/homed-manager.c')
-rw-r--r--src/home/homed-manager.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/home/homed-manager.c b/src/home/homed-manager.c
index 2cab414bb3..85fdc88962 100644
--- a/src/home/homed-manager.c
+++ b/src/home/homed-manager.c
@@ -241,25 +241,24 @@ Manager* manager_free(Manager *m) {
HASHMAP_FOREACH(h, m->homes_by_worker_pid)
(void) home_wait_for_worker(h);
- hashmap_free(m->homes_by_uid);
- hashmap_free(m->homes_by_name);
- hashmap_free(m->homes_by_worker_pid);
- hashmap_free(m->homes_by_sysfs);
-
- m->inotify_event_source = sd_event_source_unref(m->inotify_event_source);
-
- bus_verify_polkit_async_registry_free(m->polkit_registry);
-
sd_bus_flush_close_unref(m->bus);
- sd_event_unref(m->event);
+ bus_verify_polkit_async_registry_free(m->polkit_registry);
- m->notify_socket_event_source = sd_event_source_unref(m->notify_socket_event_source);
m->device_monitor = sd_device_monitor_unref(m->device_monitor);
+ m->inotify_event_source = sd_event_source_unref(m->inotify_event_source);
+ m->notify_socket_event_source = sd_event_source_unref(m->notify_socket_event_source);
m->deferred_rescan_event_source = sd_event_source_unref(m->deferred_rescan_event_source);
m->deferred_gc_event_source = sd_event_source_unref(m->deferred_gc_event_source);
m->deferred_auto_login_event_source = sd_event_source_unref(m->deferred_auto_login_event_source);
+ sd_event_unref(m->event);
+
+ hashmap_free(m->homes_by_uid);
+ hashmap_free(m->homes_by_name);
+ hashmap_free(m->homes_by_worker_pid);
+ hashmap_free(m->homes_by_sysfs);
+
if (m->private_key)
EVP_PKEY_free(m->private_key);