diff options
author | Jens Georg <mail@jensge.org> | 2012-04-20 16:55:55 +0200 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2012-05-03 16:10:53 +0200 |
commit | a378c4c9094372652ddb55286f998688571f61fc (patch) | |
tree | a5abcbb301485aac62549286f46793f1b8fbaf96 /libgupnp/gupnp-connman-manager.c | |
parent | b4fd0681711438221db91eb631d8462b1ef0f1c5 (diff) | |
download | gupnp-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.c | 7 |
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); |