From 01ea0e7d91cde0420121d95bb02539a7ec6aa762 Mon Sep 17 00:00:00 2001 From: byndyx Date: Tue, 22 Oct 2024 15:03:17 +0800 Subject: [PATCH] fix crash Signed-off-by: byndyx --- .../managersource/src/daudio_source_manager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/services/audiomanager/managersource/src/daudio_source_manager.cpp b/services/audiomanager/managersource/src/daudio_source_manager.cpp index 45325d1e..f84878ac 100644 --- a/services/audiomanager/managersource/src/daudio_source_manager.cpp +++ b/services/audiomanager/managersource/src/daudio_source_manager.cpp @@ -129,6 +129,12 @@ int32_t DAudioSourceManager::UnInit() listenThread_.join(); } + if (handler_ != nullptr) { + while (!handler_->IsIdle()) { + DHLOGD("manager handler is running, wait for idle."); + usleep(WAIT_HANDLER_IDLE_TIME_US); + } + } ipcCallback_ = nullptr; daudioMgrCallback_ = nullptr; if (DAudioHdiHandler::GetInstance().UninitHdiHandler() != DH_SUCCESS) { @@ -136,11 +142,6 @@ int32_t DAudioSourceManager::UnInit() return ERR_DH_AUDIO_FAILED; } - CHECK_NULL_RETURN(handler_, DH_SUCCESS); - while (!handler_->IsIdle()) { - DHLOGD("manager handler is running, wait for idle."); - usleep(WAIT_HANDLER_IDLE_TIME_US); - } DHLOGD("Uninit audio source manager exit."); return DH_SUCCESS; } -- Gitee