This is used by g_test_dbus_down() to ensure the GDBusConnection
gets disposed, but not create one if the singleton already got
disposed.
https://bugzilla.gnome.org/show_bug.cgi?id=672985
return ret;
}
+/* Called in any user thread, without holding locks. */
+GDBusConnection *
+_g_bus_get_singleton_if_exists (GBusType bus_type)
+{
+ GWeakRef *singleton;
+ GDBusConnection *ret = NULL;
+
+ G_LOCK (message_bus_lock);
+ singleton = message_bus_get_singleton (bus_type, NULL);
+ if (singleton == NULL)
+ goto out;
+
+ ret = g_weak_ref_get (singleton);
+
+ out:
+ G_UNLOCK (message_bus_lock);
+ return ret;
+}
+
/**
* g_bus_get_sync:
* @bus_type: A #GBusType.
void _g_dbus_object_proxy_remove_interface (GDBusObjectProxy *proxy,
const gchar *interface_name);
+/* Implemented in gdbusconnection.c */
+GDBusConnection *_g_bus_get_singleton_if_exists (GBusType bus_type);
+
G_END_DECLS
#endif /* __G_DBUS_PRIVATE_H__ */