[PATCH] port-serial-qcdm: port mm_port_serial_qcdm_command to use GTask

Aleksander Morgado aleksander at aleksander.es
Wed Jul 5 08:52:12 UTC 2017


On 04/07/17 20:40, Ben Chan wrote:
> ---
>  src/mm-port-serial-qcdm.c | 24 +++++++++---------------
>  1 file changed, 9 insertions(+), 15 deletions(-)
> 

Pushed to git master, thanks.

> diff --git a/src/mm-port-serial-qcdm.c b/src/mm-port-serial-qcdm.c
> index e997bb06..4d26e398 100644
> --- a/src/mm-port-serial-qcdm.c
> +++ b/src/mm-port-serial-qcdm.c
> @@ -153,27 +153,24 @@ mm_port_serial_qcdm_command_finish (MMPortSerialQcdm *self,
>                                      GAsyncResult *res,
>                                      GError **error)
>  {
> -    if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
> -        return NULL;
> -
> -    return g_byte_array_ref ((GByteArray *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)));
> +    return g_task_propagate_pointer (G_TASK (res), error);
>  }
>  
>  static void
>  serial_command_ready (MMPortSerial *port,
>                        GAsyncResult *res,
> -                      GSimpleAsyncResult *simple)
> +                      GTask *task)
>  {
>      GByteArray *response;
>      GError *error = NULL;
>  
>      response = mm_port_serial_command_finish (port, res, &error);
>      if (!response)
> -        g_simple_async_result_take_error (simple, error);
> +        g_task_return_error (task, error);
>      else
> -        g_simple_async_result_set_op_res_gpointer (simple, response, (GDestroyNotify)g_byte_array_unref);
> -    g_simple_async_result_complete (simple);
> -    g_object_unref (simple);
> +        g_task_return_pointer (task, response, (GDestroyNotify)g_byte_array_unref);
> +
> +    g_object_unref (task);
>  }
>  
>  void
> @@ -184,15 +181,12 @@ mm_port_serial_qcdm_command (MMPortSerialQcdm *self,
>                               GAsyncReadyCallback callback,
>                               gpointer user_data)
>  {
> -    GSimpleAsyncResult *simple;
> +    GTask *task;
>  
>      g_return_if_fail (MM_IS_PORT_SERIAL_QCDM (self));
>      g_return_if_fail (command != NULL);
>  
> -    simple = g_simple_async_result_new (G_OBJECT (self),
> -                                        callback,
> -                                        user_data,
> -                                        mm_port_serial_qcdm_command);
> +    task = g_task_new (self, cancellable, callback, user_data);
>  
>      /* 'command' is expected to be already CRC-ed and escaped */
>      mm_port_serial_command (MM_PORT_SERIAL (self),
> @@ -201,7 +195,7 @@ mm_port_serial_qcdm_command (MMPortSerialQcdm *self,
>                              FALSE, /* never cached */
>                              cancellable,
>                              (GAsyncReadyCallback)serial_command_ready,
> -                            simple);
> +                            task);
>  }
>  
>  static void
> 


-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list