diff options
-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); } /*****************************************************************************/ |