mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-22 06:28:35 +07:00
unit,job: when we suppress a D-Bus signal because nobody is listening, don't delay it until later
This commit is contained in:
parent
c1b94fda55
commit
94b6dfa24f
@ -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;
|
||||
|
5
job.c
5
job.c
@ -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;
|
||||
|
7
unit.c
7
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user