diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2016-06-17 19:59:13 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2016-06-17 19:59:13 +0100 |
commit | 33fb50b308481bc31962f0eeba7a38786cf9f55b (patch) | |
tree | f51719d7098936429dc546ae58bbf52aece423e9 /ext | |
parent | 5a7217a147daa2dc150f120b32889d78d5ff4883 (diff) |
soup: work around frequent deadlocks in GLib type initialisation
.. by registering the types from the plugin init function. This
seems to help, but we'll see if it's enough (might need similar
things elsewhere).
https://bugzilla.gnome.org/show_bug.cgi?id=693911
https://bugzilla.gnome.org/show_bug.cgi?id=674885
Diffstat (limited to 'ext')
-rw-r--r-- | ext/soup/gstsoup.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/soup/gstsoup.c b/ext/soup/gstsoup.c index 10bdba748..3be491d2e 100644 --- a/ext/soup/gstsoup.c +++ b/ext/soup/gstsoup.c @@ -34,6 +34,20 @@ plugin_init (GstPlugin * plugin) bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); #endif + /* see https://bugzilla.gnome.org/show_bug.cgi?id=674885 */ + g_type_ensure (G_TYPE_SOCKET); + g_type_ensure (G_TYPE_SOCKET_ADDRESS); + g_type_ensure (G_TYPE_SOCKET_SERVICE); + g_type_ensure (G_TYPE_SOCKET_FAMILY); + g_type_ensure (G_TYPE_SOCKET_CLIENT); + g_type_ensure (G_TYPE_RESOLVER); + g_type_ensure (G_TYPE_PROXY_RESOLVER); + g_type_ensure (G_TYPE_PROXY_ADDRESS); + g_type_ensure (G_TYPE_TLS_CERTIFICATE); + g_type_ensure (G_TYPE_TLS_CONNECTION); + g_type_ensure (G_TYPE_TLS_DATABASE); + g_type_ensure (G_TYPE_TLS_INTERACTION); + gst_element_register (plugin, "souphttpsrc", GST_RANK_PRIMARY, GST_TYPE_SOUP_HTTP_SRC); gst_element_register (plugin, "souphttpclientsink", GST_RANK_NONE, |