[glib: 1/2] giomodule: Print the type of each default GIO module
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 1/2] giomodule: Print the type of each default GIO module
- Date: Mon, 21 Jan 2019 17:48:28 +0000 (UTC)
commit 92b3f22ad50fd5e5ed945393a933936c74c20bd8
Author: Philip Withnall <withnall endlessm com>
Date: Wed Sep 12 23:45:46 2018 +0100
giomodule: Print the type of each default GIO module
This is useful for debugging in many situations. It’ll be printed with
G_MESSAGES_DEBUG=GLib-GIO or G_MESSAGES_DEBUG=all.
Mostly I need it for debugging the default GNetworkMonitor, but it will
work for all GIO module implementations.
Signed-off-by: Philip Withnall <withnall endlessm com>
gio/giomodule.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
---
diff --git a/gio/giomodule.c b/gio/giomodule.c
index 36c0cefed..91334cd15 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -885,6 +885,8 @@ _g_io_module_get_default (const gchar *extension_point,
if (g_hash_table_lookup_extended (default_modules, extension_point,
&key, &impl))
{
+ /* Don’t debug here, since we’re returning a cached object which was
+ * already printed earlier. */
g_rec_mutex_unlock (&default_modules_lock);
return impl;
}
@@ -899,6 +901,8 @@ _g_io_module_get_default (const gchar *extension_point,
if (!ep)
{
+ g_debug ("%s: Failed to find extension point ‘%s’",
+ G_STRFUNC, extension_point);
g_warn_if_reached ();
g_rec_mutex_unlock (&default_modules_lock);
return NULL;
@@ -911,6 +915,7 @@ _g_io_module_get_default (const gchar *extension_point,
if (preferred)
{
impl = try_implementation (extension_point, preferred, verify_func);
+ extension = preferred;
if (impl)
goto done;
}
@@ -939,6 +944,14 @@ _g_io_module_get_default (const gchar *extension_point,
impl ? g_object_ref (impl) : NULL);
g_rec_mutex_unlock (&default_modules_lock);
+ if (impl != NULL)
+ g_debug ("%s: Found default implementation %s (%s) for ‘%s’",
+ G_STRFUNC, g_io_extension_get_name (extension),
+ G_OBJECT_TYPE_NAME (impl), extension_point);
+ else
+ g_debug ("%s: Failed to find default implementation for ‘%s’",
+ G_STRFUNC, extension_point);
+
return impl;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]