[glib] gtestdbus: Properly close server connections



commit baf92d09d69de0d9f9b2d0f77fc62c21fdef4da8
Author: Stef Walter <stefw gnome org>
Date:   Sat Nov 9 20:18:34 2013 +0100

    gtestdbus: Properly close server connections
    
    Otherwise g_test_dbus_down() following a g_test_dbus_stop()
    will hang until it times out.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=711807

 gio/gtestdbus.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/gio/gtestdbus.c b/gio/gtestdbus.c
index bff39f1..98ee8c9 100644
--- a/gio/gtestdbus.c
+++ b/gio/gtestdbus.c
@@ -67,14 +67,15 @@ on_weak_notify_timeout (gpointer user_data)
 }
 
 static gboolean
-unref_on_idle (gpointer object)
+dispose_on_idle (gpointer object)
 {
+  g_object_run_dispose (object);
   g_object_unref (object);
   return FALSE;
 }
 
 static gboolean
-_g_object_unref_and_wait_weak_notify (gpointer object)
+_g_object_dispose_and_wait_weak_notify (gpointer object)
 {
   WeakNotifyData data;
   guint timeout_id;
@@ -86,7 +87,7 @@ _g_object_unref_and_wait_weak_notify (gpointer object)
 
   /* Drop the ref in an idle callback, this is to make sure the mainloop
    * is already running when weak notify happens */
-  g_idle_add (unref_on_idle, object);
+  g_idle_add (dispose_on_idle, object);
 
   /* Make sure we don't block forever */
   timeout_id = g_timeout_add (30 * 1000, on_weak_notify_timeout, &data);
@@ -813,7 +814,7 @@ g_test_dbus_down (GTestDBus *self)
     stop_daemon (self);
 
   if (connection != NULL)
-    _g_object_unref_and_wait_weak_notify (connection);
+    _g_object_dispose_and_wait_weak_notify (connection);
 
   g_test_dbus_unset ();
   self->priv->up = FALSE;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]