telepathy-logger: log-walker: Use complete_in_idle() instead of idle_add()
Debarshi Ray
debarshir at kemper.freedesktop.org
Tue Jan 15 08:18:31 PST 2013
Module: telepathy-logger
Branch: master
Commit: 08cb95912dc554c45f3882eca592dca7012425b6
URL: http://cgit.freedesktop.org/telepathy/telepathy-logger/commit/?id=08cb95912dc554c45f3882eca592dca7012425b6
Author: Nicolas Dufresne <nicolas.dufresne at collabora.com>
Date: Wed Sep 5 00:26:17 2012 +0200
log-walker: Use complete_in_idle() instead of idle_add()
Fixes: https://bugs.freedesktop.org/54270
---
telepathy-logger/log-walker.c | 28 ++++++----------------------
1 files changed, 6 insertions(+), 22 deletions(-)
diff --git a/telepathy-logger/log-walker.c b/telepathy-logger/log-walker.c
index 496027b..23fc95e 100644
--- a/telepathy-logger/log-walker.c
+++ b/telepathy-logger/log-walker.c
@@ -484,22 +484,12 @@ tpl_log_walker_get_events (GObject *source_object,
g_mutex_unlock (&priv->mutex);
g_simple_async_result_set_op_res_gpointer (simple, events, NULL);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
-}
-
-
-static gboolean
-tpl_log_walker_get_events_async_idle (gpointer user_data)
-{
- GSimpleAsyncResult *simple;
- GObject *source_object;
-
- simple = G_SIMPLE_ASYNC_RESULT (user_data);
- source_object = g_async_result_get_source_object (G_ASYNC_RESULT (simple));
- tpl_log_walker_get_events (source_object, NULL, simple);
+ if (result != NULL)
+ g_simple_async_result_complete (simple);
+ else
+ g_simple_async_result_complete_in_idle (simple);
- return G_SOURCE_REMOVE;
+ g_object_unref (simple);
}
@@ -775,13 +765,7 @@ tpl_log_walker_get_events_async (TplLogWalker *walker,
tpl_log_walker_get_events_async);
g_mutex_lock (&walker->priv->mutex);
-
- /* We should return to the main loop before doing anything because
- * otherwise in certain cases (eg., num_events == 0), we might
- * complete the whole operation without ever returning to the main
- * loop.
- */
- g_idle_add (tpl_log_walker_get_events_async_idle, simple);
+ tpl_log_walker_get_events (G_OBJECT (walker), NULL, simple);
}
More information about the telepathy-commits
mailing list