diff options
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | src/channel-base.c | 29 |
2 files changed, 16 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac index 964ee63..6983b6b 100644 --- a/configure.ac +++ b/configure.ac @@ -166,7 +166,7 @@ fi AC_CHECK_FUNCS(clearenv strtok_r) -PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 2.28) +PKG_CHECK_MODULES(GLIB2, glib-2.0) AC_SUBST(GLIB2_CFLAGS) AC_SUBST(GLIB2_LIBS) @@ -174,7 +174,7 @@ PKG_CHECK_MODULES(GOBJECT2, gobject-2.0) AC_SUBST(GOBJECT2_CFLAGS) AC_SUBST(GOBJECT2_LIBS) -PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.10.0 $gio_os) +PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.36 $gio_os) AC_SUBST(GIO_CFLAGS) AC_SUBST(GIO_LIBS) @@ -182,7 +182,7 @@ PKG_CHECK_MODULES(CAIRO, cairo >= 1.2.0) AC_SUBST(CAIRO_CFLAGS) AC_SUBST(CAIRO_LIBS) -PKG_CHECK_MODULES(GTHREAD, gthread-2.0 > 2.0.0) +PKG_CHECK_MODULES(GTHREAD, gthread-2.0) AC_SUBST(GTHREAD_CFLAGS) AC_SUBST(GTHREAD_LIBS) diff --git a/src/channel-base.c b/src/channel-base.c index 13e4ced..de04b89 100644 --- a/src/channel-base.c +++ b/src/channel-base.c @@ -240,10 +240,12 @@ void spice_channel_set_handlers(SpiceChannelClass *klass, static void vmc_write_free_cb(uint8_t *data, void *user_data) { - GSimpleAsyncResult *result = user_data; + GTask *task = user_data; + gsize count = GPOINTER_TO_SIZE(g_task_get_task_data(task)); - g_simple_async_result_complete_in_idle(result); - g_object_unref(result); + g_task_return_int(task, count); + + g_object_unref(task); } G_GNUC_INTERNAL @@ -254,15 +256,14 @@ void spice_vmc_write_async(SpiceChannel *self, gpointer user_data) { SpiceMsgOut *msg; - GSimpleAsyncResult *simple; + GTask *task; - simple = g_simple_async_result_new(G_OBJECT(self), callback, user_data, - spice_port_write_async); - g_simple_async_result_set_op_res_gssize(simple, count); + task = g_task_new(self, cancellable, callback, user_data); + g_task_set_task_data(task, GSIZE_TO_POINTER(count), NULL); msg = spice_msg_out_new(SPICE_CHANNEL(self), SPICE_MSGC_SPICEVMC_DATA); spice_marshaller_add_ref_full(msg->marshaller, (uint8_t*)buffer, count, - vmc_write_free_cb, simple); + vmc_write_free_cb, task); spice_msg_out_send(msg); } @@ -270,17 +271,13 @@ G_GNUC_INTERNAL gssize spice_vmc_write_finish(SpiceChannel *self, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; + GTask *task; g_return_val_if_fail(result != NULL, -1); - simple = (GSimpleAsyncResult *)result; - - if (g_simple_async_result_propagate_error(simple, error)) - return -1; + task = G_TASK(result); - g_return_val_if_fail(g_simple_async_result_is_valid(result, G_OBJECT(self), - spice_port_write_async), -1); + g_return_val_if_fail(g_task_is_valid(task, self), -1); - return g_simple_async_result_get_op_res_gssize(simple); + return g_task_propagate_int(task, error); } |