diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2013-11-25 18:03:08 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2014-02-13 13:41:52 +0100 |
commit | f85e345a9e0f6cd78e69092a55adfacb911f89bc (patch) | |
tree | 969daebc4099056f2aacaad18ceef1b0f049eae2 /src/main.c | |
parent | 247a9459509a1eeee7ffb686034920d3614c2b99 (diff) |
manager: as soon as we know we're going to stop, clear DBus connection
So that the ObjectManager interface doesn't try to signal about e.g. interface
removals; see:
https://bugzilla.gnome.org/show_bug.cgi?id=715157.
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -44,6 +44,10 @@ static gboolean quit_cb (gpointer user_data) { mm_info ("Caught signal, shutting down..."); + + if (manager) + g_object_set (manager, MM_MANAGER_CONNECTION, NULL, NULL); + if (loop) g_idle_add ((GSourceFunc) g_main_loop_quit, loop); else @@ -100,6 +104,9 @@ name_lost_cb (GDBusConnection *connection, else mm_warn ("Could not acquire the '%s' service name", name); + if (manager) + g_object_set (manager, MM_MANAGER_CONNECTION, NULL, NULL); + g_main_loop_quit (loop); } |