summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac6
-rw-r--r--src/channel-base.c29
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);
}