1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-27 18:04:05 +03:00

sd-bus: even if we need a cookie when sending a message there's no need to needlessly send it if we don't actually need it

This commit is contained in:
Lennart Poettering 2015-01-09 21:25:23 +01:00
parent d714387ed7
commit 997eadb553

View File

@ -1704,8 +1704,8 @@ static int bus_send_internal(sd_bus *bus, sd_bus_message *_m, uint64_t *cookie,
/* If this is a reply and no reply was requested, then let's
* suppress this, if we can */
if (m->dont_send && !cookie)
return 1;
if (m->dont_send)
goto finish;
if ((bus->state == BUS_RUNNING || bus->state == BUS_HELLO) && bus->wqueue_size <= 0) {
size_t idx = 0;
@ -1718,7 +1718,9 @@ static int bus_send_internal(sd_bus *bus, sd_bus_message *_m, uint64_t *cookie,
}
return r;
} else if (!bus->is_kernel && idx < BUS_MESSAGE_SIZE(m)) {
}
if (!bus->is_kernel && idx < BUS_MESSAGE_SIZE(m)) {
/* Wasn't fully written. So let's remember how
* much was written. Note that the first entry
* of the wqueue array is always allocated so
@ -1728,6 +1730,7 @@ static int bus_send_internal(sd_bus *bus, sd_bus_message *_m, uint64_t *cookie,
bus->wqueue_size = 1;
bus->windex = idx;
}
} else {
/* Just append it to the queue. */
@ -1740,6 +1743,7 @@ static int bus_send_internal(sd_bus *bus, sd_bus_message *_m, uint64_t *cookie,
bus->wqueue[bus->wqueue_size ++] = sd_bus_message_ref(m);
}
finish:
if (cookie)
*cookie = BUS_MESSAGE_COOKIE(m);