Commit 94b6dfa2 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

unit,job: when we suppress a D-Bus signal because nobody is listening, don't delay it until later

parent c1b94fda
......@@ -152,8 +152,10 @@ void bus_job_send_change_signal(Job *j) {
LIST_REMOVE(Job, dbus_queue, j->manager->dbus_job_queue, j);
j->in_dbus_queue = false;
if (set_isempty(j->manager->subscribed))
if (set_isempty(j->manager->subscribed)) {
j->sent_dbus_new_signal = true;
return;
}
if (!(p = job_dbus_path(j)))
goto oom;
......
......@@ -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;
......
......@@ -541,6 +541,11 @@ void job_add_to_dbus_queue(Job *j) {
if (j->in_dbus_queue)
return;
if (set_isempty(j->manager->subscribed)) {
j->sent_dbus_new_signal = true;
return;
}
LIST_PREPEND(Job, dbus_queue, j->manager->dbus_job_queue, j);
j->in_dbus_queue = true;
}
......
......@@ -57,7 +57,7 @@
#define GC_QUEUE_ENTRIES_MAX 16
/* As soon as 5s passed since a unit was added to our GC queue, make sure to run a gc sweep */
#define GC_QUEUE_USEC_MAX (5*USEC_PER_SEC)
#define GC_QUEUE_USEC_MAX (10*USEC_PER_SEC)
static int enable_special_signals(Manager *m) {
char fd;
......
......@@ -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;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment