aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2013-11-25 18:03:08 +0100
committerAleksander Morgado <aleksander@aleksander.es>2014-02-13 13:41:52 +0100
commitf85e345a9e0f6cd78e69092a55adfacb911f89bc (patch)
tree969daebc4099056f2aacaad18ceef1b0f049eae2 /src/main.c
parent247a9459509a1eeee7ffb686034920d3614c2b99 (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.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 4af28be2..78b3245f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);
}