From: Michal Schmidt Date: Mon, 19 Dec 2011 17:32:10 +0000 (+0100) Subject: dbus: no sync D-Bus connection flushing X-Git-Tag: v38~147 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9721b19968dd80ad187d03da214a2a8d28ead3ad dbus: no sync D-Bus connection flushing Blocking on D-Bus in a system manager could lead to deadlock. --- diff --git a/src/dbus.c b/src/dbus.c index 81b4f5343..f9250f135 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -1196,7 +1196,9 @@ static void shutdown_connection(Manager *m, DBusConnection *c) { } dbus_connection_set_dispatch_status_function(c, NULL, NULL, NULL); - dbus_connection_flush(c); + /* system manager cannot afford to block on DBus */ + if (m->running_as != MANAGER_SYSTEM) + dbus_connection_flush(c); dbus_connection_close(c); dbus_connection_unref(c); }