diff options
author | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2012-09-05 00:26:17 +0200 |
---|---|---|
committer | Debarshi Ray <debarshir@freedesktop.org> | 2013-01-09 15:33:23 +0100 |
commit | 08cb95912dc554c45f3882eca592dca7012425b6 (patch) | |
tree | 86fd3c557b71fc604324ba747717d92f55a4d772 | |
parent | 65483732df890a2c702feb55ba594c59118f8658 (diff) | |
download | telepathy-logger-08cb95912dc554c45f3882eca592dca7012425b6.tar.gz |
log-walker: Use complete_in_idle() instead of idle_add()
Fixes: https://bugs.freedesktop.org/54270
-rw-r--r-- | 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); } |