[glib] gdbus: Init more types to work around gtype thread issue
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gdbus: Init more types to work around gtype thread issue
- Date: Mon, 22 May 2017 13:20:58 +0000 (UTC)
commit a0ed9bc8d627ee2022dcd492809aed951bcbc18f
Author: Colin Walters <walters verbum org>
Date: Fri May 19 16:08:20 2017 -0400
gdbus: Init more types to work around gtype thread issue
See https://bugzilla.gnome.org/show_bug.cgi?id=674885#c85
In this pass I also went through and added more types from GDBusConnection.
gio/gdbusprivate.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index a068029..d0bc233 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -228,10 +228,30 @@ ensure_required_types (void)
{
g_assert (ensured_classes == NULL);
ensured_classes = g_ptr_array_new ();
+ /* Generally in this list, you should initialize types which are used as
+ * properties first, then the class which has them. For example, GDBusProxy
+ * has a type of GDBusConnection, so we initialize GDBusConnection first.
+ * And because GDBusConnection has a property of type GDBusConnectionFlags,
+ * we initialize that first.
+ *
+ * Similarly, GSocket has a type of GSocketAddress.
+ *
+ * We don't fill out the whole dependency tree right now because in practice
+ * it tends to be just types that GDBus use that cause pain, and there
+ * is work on a more general approach in https://bugzilla.gnome.org/show_bug.cgi?id=674885
+ */
ensure_type (G_TYPE_TASK);
ensure_type (G_TYPE_MEMORY_INPUT_STREAM);
+ ensure_type (G_TYPE_DBUS_CONNECTION_FLAGS);
+ ensure_type (G_TYPE_DBUS_CAPABILITY_FLAGS);
+ ensure_type (G_TYPE_DBUS_AUTH_OBSERVER);
ensure_type (G_TYPE_DBUS_CONNECTION);
ensure_type (G_TYPE_DBUS_PROXY);
+ ensure_type (G_TYPE_SOCKET_FAMILY);
+ ensure_type (G_TYPE_SOCKET_TYPE);
+ ensure_type (G_TYPE_SOCKET_PROTOCOL);
+ ensure_type (G_TYPE_SOCKET_ADDRESS);
+ ensure_type (G_TYPE_SOCKET);
}
/* ---------------------------------------------------------------------------------------------------- */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]