static void get_stream_thread_func (GSimpleAsyncResult *res, GObject *object, GCancellable *cancellable) { GetStreamData *data; GError *error; data = g_simple_async_result_get_op_res_gpointer (res); error = NULL; data->stream = g_dbus_address_get_stream_sync (data->address, &data->guid, cancellable, &error); if (data->stream == NULL) g_simple_async_result_take_error (res, error); }
static void get_stream_thread_func (GTask *task, gpointer source_object, gpointer task_data, GCancellable *cancellable) { GetStreamData *data = task_data; GIOStream *stream; GError *error = NULL; stream = g_dbus_address_get_stream_sync (data->address, &data->guid, cancellable, &error); if (stream) g_task_return_pointer (task, stream, g_object_unref); else g_task_return_error (task, error); }