diff options
-rw-r--r-- | src/mm-base-modem.c | 107 |
1 files changed, 12 insertions, 95 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index f1979689..0e0fe00c 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -122,10 +122,6 @@ struct _MMBaseModemPrivate { /* Some audio-capable devices will have a port for audio specifically */ MMPortSerial *audio; - /* Support for parallel enable/disable operations */ - GList *enable_tasks; - GList *disable_tasks; - #if defined WITH_QMI /* QMI ports */ GList *qmi; @@ -772,31 +768,7 @@ mm_base_modem_disable_finish (MMBaseModem *self, GAsyncResult *res, GError **error) { - return g_task_propagate_boolean (G_TASK (res), error); -} - -static void -disable_ready (MMBaseModem *self, - GAsyncResult *res) -{ - GError *error = NULL; - GList *l; - GList *disable_tasks; - - g_assert (self->priv->disable_tasks); - disable_tasks = self->priv->disable_tasks; - self->priv->disable_tasks = NULL; - - MM_BASE_MODEM_GET_CLASS (self)->disable_finish (self, res, &error); - for (l = disable_tasks; l; l = g_list_next (l)) { - if (error) - g_task_return_error (G_TASK (l->data), g_error_copy (error)); - else - g_task_return_boolean (G_TASK (l->data), TRUE); - } - g_clear_error (&error); - - g_list_free_full (disable_tasks, g_object_unref); + return MM_BASE_MODEM_GET_CLASS (self)->disable_finish (self, res, error); } void @@ -804,27 +776,13 @@ mm_base_modem_disable (MMBaseModem *self, GAsyncReadyCallback callback, gpointer user_data) { - GTask *task; - gboolean run_disable; - g_assert (MM_BASE_MODEM_GET_CLASS (self)->disable != NULL); g_assert (MM_BASE_MODEM_GET_CLASS (self)->disable_finish != NULL); - - /* If the list of disable tasks is empty, we need to run */ - run_disable = !self->priv->disable_tasks; - - /* Store task */ - task = g_task_new (self, self->priv->cancellable, callback, user_data); - self->priv->disable_tasks = g_list_append (self->priv->disable_tasks, task); - - if (!run_disable) - return; - MM_BASE_MODEM_GET_CLASS (self)->disable ( self, self->priv->cancellable, - (GAsyncReadyCallback) disable_ready, - NULL); + callback, + user_data); } gboolean @@ -832,31 +790,7 @@ mm_base_modem_enable_finish (MMBaseModem *self, GAsyncResult *res, GError **error) { - return g_task_propagate_boolean (G_TASK (res), error); -} - -static void -enable_ready (MMBaseModem *self, - GAsyncResult *res) -{ - GError *error = NULL; - GList *l; - GList *enable_tasks; - - g_assert (self->priv->enable_tasks); - enable_tasks = self->priv->enable_tasks; - self->priv->enable_tasks = NULL; - - MM_BASE_MODEM_GET_CLASS (self)->enable_finish (self, res, &error); - for (l = enable_tasks; l; l = g_list_next (l)) { - if (error) - g_task_return_error (G_TASK (l->data), g_error_copy (error)); - else - g_task_return_boolean (G_TASK (l->data), TRUE); - } - g_clear_error (&error); - - g_list_free_full (enable_tasks, g_object_unref); + return MM_BASE_MODEM_GET_CLASS (self)->enable_finish (self, res, error); } void @@ -864,45 +798,30 @@ mm_base_modem_enable (MMBaseModem *self, GAsyncReadyCallback callback, gpointer user_data) { - GTask *task; - gboolean run_enable; - g_assert (MM_BASE_MODEM_GET_CLASS (self)->enable != NULL); g_assert (MM_BASE_MODEM_GET_CLASS (self)->enable_finish != NULL); - - /* If the list of enable tasks is empty, we need to run */ - run_enable = !self->priv->enable_tasks; - - /* Store task */ - task = g_task_new (self, self->priv->cancellable, callback, user_data); - self->priv->enable_tasks = g_list_append (self->priv->enable_tasks, task); - - if (!run_enable) - return; - MM_BASE_MODEM_GET_CLASS (self)->enable ( self, self->priv->cancellable, - (GAsyncReadyCallback) enable_ready, - NULL); + callback, + user_data); } gboolean -mm_base_modem_initialize_finish (MMBaseModem *self, - GAsyncResult *res, - GError **error) +mm_base_modem_initialize_finish (MMBaseModem *self, + GAsyncResult *res, + GError **error) { return MM_BASE_MODEM_GET_CLASS (self)->initialize_finish (self, res, error); } void -mm_base_modem_initialize (MMBaseModem *self, - GAsyncReadyCallback callback, - gpointer user_data) +mm_base_modem_initialize (MMBaseModem *self, + GAsyncReadyCallback callback, + gpointer user_data) { g_assert (MM_BASE_MODEM_GET_CLASS (self)->initialize != NULL); g_assert (MM_BASE_MODEM_GET_CLASS (self)->initialize_finish != NULL); - MM_BASE_MODEM_GET_CLASS (self)->initialize ( self, self->priv->cancellable, @@ -2222,8 +2141,6 @@ finalize (GObject *object) * mm_auth_provider_cancel_for_owner (self->priv->authp, object); */ - g_assert (!self->priv->enable_tasks); - g_assert (!self->priv->disable_tasks); g_assert (!self->priv->scheduled_operations); mm_obj_dbg (self, "completely disposed"); |