Acked-by: Jonathon Jongsma <jjongsma@xxxxxxxxxx> On Fri, 2016-02-12 at 10:46 +0100, Fabiano Fidêncio wrote: > Instead of using GSimpleAsyncResult, use the new GTask API, which is > much more straightforward. > --- > src/spice-channel.c | 32 +++++++++++++------------------- > 1 file changed, 13 insertions(+), 19 deletions(-) > > diff --git a/src/spice-channel.c b/src/spice-channel.c > index 1941b1b..418fc5a 100644 > --- a/src/spice-channel.c > +++ b/src/spice-channel.c > @@ -2124,9 +2124,7 @@ static void spice_channel_flushed(SpiceChannel *channel, > gboolean success) > GSList *l; > > for (l = c->flushing; l != NULL; l = l->next) { > - GSimpleAsyncResult *result = G_SIMPLE_ASYNC_RESULT(l->data); > - g_simple_async_result_set_op_res_gboolean(result, success); > - g_simple_async_result_complete_in_idle(result); > + g_task_return_boolean(G_TASK(l->data), success); > } > > g_slist_free_full(c->flushing, g_object_unref); > @@ -2970,7 +2968,7 @@ static void > spice_channel_send_migration_handshake(SpiceChannel *channel) > void spice_channel_flush_async(SpiceChannel *self, GCancellable *cancellable, > GAsyncReadyCallback callback, gpointer > user_data) > { > - GSimpleAsyncResult *simple; > + GTask *task; > SpiceChannelPrivate *c; > gboolean was_empty; > > @@ -2978,26 +2976,25 @@ void spice_channel_flush_async(SpiceChannel *self, > GCancellable *cancellable, > c = self->priv; > > if (c->state != SPICE_CHANNEL_STATE_READY) { > - g_simple_async_report_error_in_idle(G_OBJECT(self), callback, > user_data, > + g_task_report_new_error(self, callback, user_data, > + spice_channel_flush_async, > SPICE_CLIENT_ERROR, SPICE_CLIENT_ERROR_FAILED, > "The channel is not ready yet"); > return; > } > > - simple = g_simple_async_result_new(G_OBJECT(self), callback, user_data, > - spice_channel_flush_async); > + task = g_task_new(self, cancellable, callback, user_data); > > STATIC_MUTEX_LOCK(c->xmit_queue_lock); > was_empty = g_queue_is_empty(&c->xmit_queue); > STATIC_MUTEX_UNLOCK(c->xmit_queue_lock); > if (was_empty) { > - g_simple_async_result_set_op_res_gboolean(simple, TRUE); > - g_simple_async_result_complete_in_idle(simple); > - g_object_unref(simple); > + g_task_return_boolean(task, TRUE); > + g_object_unref(task); > return; > } > > - c->flushing = g_slist_append(c->flushing, simple); > + c->flushing = g_slist_append(c->flushing, task); > } > > /** > @@ -3015,19 +3012,16 @@ void spice_channel_flush_async(SpiceChannel *self, > GCancellable *cancellable, > gboolean spice_channel_flush_finish(SpiceChannel *self, GAsyncResult *result, > GError **error) > { > - GSimpleAsyncResult *simple; > + GTask *task; > > g_return_val_if_fail(SPICE_IS_CHANNEL(self), FALSE); > g_return_val_if_fail(result != NULL, FALSE); > > - simple = (GSimpleAsyncResult *)result; > + task = G_TASK(result); > > - if (g_simple_async_result_propagate_error(simple, error)) > - return -1; > - > - g_return_val_if_fail(g_simple_async_result_is_valid(result, > G_OBJECT(self), > - > spice_channel_flush_async), FALSE); > + g_return_val_if_fail(g_task_is_valid(task, self), > + FALSE); > > CHANNEL_DEBUG(self, "flushed finished!"); > - return g_simple_async_result_get_op_res_gboolean(simple); > + return g_task_propagate_boolean(task, error); > } _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel