chiark / gitweb /
unit,job: when we suppress a D-Bus signal because nobody is listening, don't delay...
[elogind.git] / unit.c
diff --git a/unit.c b/unit.c
index 1757af317ddbf60c7ac869ca4bdc992ca94e3aee..ee0c120b24fe0eee8aba3ab7758427c936821c7b 100644 (file)
--- a/unit.c
+++ b/unit.c
@@ -272,9 +272,14 @@ void unit_add_to_dbus_queue(Unit *u) {
         assert(u);
         assert(u->meta.type != _UNIT_TYPE_INVALID);
 
-        if (u->meta.load_state == UNIT_STUB || u->meta.in_dbus_queue || set_isempty(u->meta.manager->subscribed))
+        if (u->meta.load_state == UNIT_STUB || u->meta.in_dbus_queue)
                 return;
 
+        if (set_isempty(u->meta.manager->subscribed)) {
+                u->meta.sent_dbus_new_signal = true;
+                return;
+        }
+
         LIST_PREPEND(Meta, dbus_queue, u->meta.manager->dbus_unit_queue, &u->meta);
         u->meta.in_dbus_queue = true;
 }