diff options
author | Ben Chan <benchan@chromium.org> | 2017-07-10 16:32:13 -0700 |
---|---|---|
committer | Ben Chan <benchan@chromium.org> | 2017-07-11 10:30:39 -0700 |
commit | e0eb23d9a6ed801a0d19b55df5474d32791dabf0 (patch) | |
tree | f57112b450236e9b34befd7fc755f97097517051 /src | |
parent | ec14a26a7d20c4c7a79f4887de6d925a7438adaf (diff) |
broadband-modem-mbim: port modem_create_bearer to use GTask
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 04d54ee4..99083bb4 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -1365,12 +1365,7 @@ modem_create_bearer_finish (MMIfaceModem *self, GAsyncResult *res, GError **error) { - MMBaseBearer *bearer; - - bearer = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)); - mm_dbg ("New bearer created at DBus path '%s'", mm_base_bearer_get_path (bearer)); - - return g_object_ref (bearer); + return g_task_propagate_pointer (G_TASK (res), error); } typedef struct { @@ -1431,25 +1426,19 @@ modem_create_bearer (MMIfaceModem *self, gpointer user_data) { MMBaseBearer *bearer; - GSimpleAsyncResult *result; + GTask *task; gint session_id; - /* Set a new ref to the bearer object as result */ - result = g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - modem_create_bearer); + task = g_task_new (self, NULL, callback, user_data); /* Find a new session ID */ session_id = find_next_bearer_session_id (MM_BROADBAND_MODEM_MBIM (self)); if (session_id < 0) { - g_simple_async_result_set_error ( - result, - MM_CORE_ERROR, - MM_CORE_ERROR_FAILED, - "Not enough session IDs"); - g_simple_async_result_complete_in_idle (result); - g_object_unref (result); + g_task_return_new_error (task, + MM_CORE_ERROR, + MM_CORE_ERROR_FAILED, + "Not enough session IDs"); + g_object_unref (task); return; } @@ -1458,10 +1447,8 @@ modem_create_bearer (MMIfaceModem *self, bearer = mm_bearer_mbim_new (MM_BROADBAND_MODEM_MBIM (self), properties, (guint)session_id); - - g_simple_async_result_set_op_res_gpointer (result, bearer, g_object_unref); - g_simple_async_result_complete_in_idle (result); - g_object_unref (result); + g_task_return_pointer (task, bearer, g_object_unref); + g_object_unref (task); } /*****************************************************************************/ |