chiark / gitweb /
unit,job: when we suppress a D-Bus signal because nobody is listening, don't delay...
[elogind.git] / dbus-unit.c
index cbc2812e315ca71ed0ddbb1583fee3e7de1f0972..0c311ea1a71825f88e5bd3eb3e18d7df4bce4c0d 100644 (file)
@@ -348,8 +348,10 @@ void bus_unit_send_change_signal(Unit *u) {
         LIST_REMOVE(Meta, dbus_queue, u->meta.manager->dbus_unit_queue, &u->meta);
         u->meta.in_dbus_queue = false;
 
-        if (set_isempty(u->meta.manager->subscribed))
+        if (set_isempty(u->meta.manager->subscribed)) {
+                u->meta.sent_dbus_new_signal = true;
                 return;
+        }
 
         if (!(p = unit_dbus_path(u)))
                 goto oom;
@@ -362,7 +364,7 @@ void bus_unit_send_change_signal(Unit *u) {
         } else {
                 /* Send a new signal */
 
-                if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1", "UnitNew")))
+                if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "UnitNew")))
                         goto oom;
 
                 if (!dbus_message_append_args(m,
@@ -403,7 +405,7 @@ void bus_unit_send_removed_signal(Unit *u) {
         if (!(p = unit_dbus_path(u)))
                 goto oom;
 
-        if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1", "UnitRemoved")))
+        if (!(m = dbus_message_new_signal("/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "UnitRemoved")))
                 goto oom;
 
         if (!dbus_message_append_args(m,