chiark / gitweb /
machined: don't look for images on each property get, but cache the image object...
[elogind.git] / src / machine / machined.c
index c5c20abf0c508c1d5a3ed59c69d0a62b4c038c73..6877c2b31333d69e9ece894dbc6df357528b9797 100644 (file)
@@ -34,6 +34,7 @@
 #include "bus-util.h"
 #include "bus-error.h"
 #include "label.h"
+#include "machine-image.h"
 #include "machined.h"
 
 Manager *manager_new(void) {
@@ -66,6 +67,7 @@ Manager *manager_new(void) {
 
 void manager_free(Manager *m) {
         Machine *machine;
+        Image *i;
 
         assert(m);
 
@@ -76,6 +78,13 @@ void manager_free(Manager *m) {
         hashmap_free(m->machine_units);
         hashmap_free(m->machine_leaders);
 
+        while ((i = hashmap_steal_first(m->image_cache)))
+                image_unref(i);
+
+        hashmap_free(m->image_cache);
+
+        sd_event_source_unref(m->image_cache_defer_event);
+
         bus_verify_polkit_async_registry_free(m->polkit_registry);
 
         sd_bus_unref(m->bus);