dbus: make sure to flush bus connection before disconnecting, so that no messages are lost

This commit is contained in:
Lennart Poettering 2010-09-02 23:26:04 +02:00
parent 18ffdfda48
commit 5d452f9cec
5 changed files with 9 additions and 8 deletions

4
fixme
View File

@ -80,12 +80,8 @@ v9:
* fix terminal setup
* figure out ssh disconnect hang
* home.mount failing should not be able to cancel umount.target (IgnoreDependencyFailure=yes borked?)
* disallow further dbus+socket activation on shutdown
External:
* place /etc/inittab with explaining blurb.

View File

@ -82,6 +82,7 @@ int main(int argc, char *argv[]) {
finish:
if (bus) {
dbus_connection_flush(bus);
dbus_connection_close(bus);
dbus_connection_unref(bus);
}

View File

@ -232,8 +232,9 @@ static void server_done(Server *s) {
close_nointr_nofail(s->epoll_fd);
if (s->bus) {
dbus_connection_close(s->bus);
dbus_connection_unref(s->bus);
dbus_connection_flush(s->bus);
dbus_connection_close(s->bus);
dbus_connection_unref(s->bus);
}
}

View File

@ -4624,6 +4624,7 @@ finish:
dbus_message_unref(reply);
if (bus) {
dbus_connection_flush(bus);
dbus_connection_close(bus);
dbus_connection_unref(bus);
}
@ -5039,6 +5040,7 @@ int main(int argc, char*argv[]) {
finish:
if (bus) {
dbus_connection_flush(bus);
dbus_connection_close(bus);
dbus_connection_unref(bus);
}

View File

@ -406,8 +406,9 @@ finish:
#endif
if (c.bus) {
dbus_connection_close(c.bus);
dbus_connection_unref(c.bus);
dbus_connection_flush(c.bus);
dbus_connection_close(c.bus);
dbus_connection_unref(c.bus);
}
dbus_error_free(&error);