summaryrefslogtreecommitdiff
path: root/libgupnp/gupnp-connman-manager.c
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2012-04-20 16:55:55 +0200
committerJens Georg <mail@jensge.org>2012-05-03 16:10:53 +0200
commita378c4c9094372652ddb55286f998688571f61fc (patch)
treea5abcbb301485aac62549286f46793f1b8fbaf96 /libgupnp/gupnp-connman-manager.c
parentb4fd0681711438221db91eb631d8462b1ef0f1c5 (diff)
downloadgupnp-a378c4c9094372652ddb55286f998688571f61fc.tar.gz
Work-around a deadlock when quickly creating/releasing GDBusConnections
https://bugzilla.gnome.org/show_bug.cgi?id=667494
Diffstat (limited to 'libgupnp/gupnp-connman-manager.c')
-rw-r--r--libgupnp/gupnp-connman-manager.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libgupnp/gupnp-connman-manager.c b/libgupnp/gupnp-connman-manager.c
index 8b9952f..076b831 100644
--- a/libgupnp/gupnp-connman-manager.c
+++ b/libgupnp/gupnp-connman-manager.c
@@ -57,6 +57,7 @@ struct _GUPnPConnmanManagerPrivate {
GSource *idle_context_creation_src;
GHashTable *cm_services;
guint sig_change_id;
+ GDBusConnection *system_bus;
};
#define CM_DBUS_CONNMAN_NAME "net.connman"
@@ -668,6 +669,8 @@ gupnp_connman_manager_dispose (GObject *object)
priv->cm_services = NULL;
}
+ g_clear_object (&(priv->system_bus));
+
/* Call super */
object_class = G_OBJECT_CLASS (gupnp_connman_manager_parent_class);
object_class->dispose (object);
@@ -681,6 +684,10 @@ gupnp_connman_manager_constructed (GObject *object)
manager = GUPNP_CONNMAN_MANAGER (object);
+ manager->priv->system_bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM,
+ NULL,
+ NULL);
+
init_connman_manager (manager);
schedule_loopback_context_creation (manager);