From c06a4064f1b950c8a53f263b73e3879d064b6483 Mon Sep 17 00:00:00 2001 From: hwwuhaobo Date: Tue, 21 Nov 2023 15:43:46 +0800 Subject: [PATCH] Prevent two consecutive SourceManger::Init executions Signed-off-by: hwwuhaobo --- .../managersource/src/daudio_source_dev.cpp | 2 +- .../managersource/src/daudio_source_manager.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index 645355ce..7d19ccea 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -203,7 +203,7 @@ void DAudioSourceDev::NotifyEvent(const AudioEvent &event) DHLOGD("Notify event, eventType: %d.", event.type); std::map::iterator iter = memberFuncMap_.find(event.type); if (iter == memberFuncMap_.end()) { - DHLOGE("Invalid eventType."); + DHLOGE("Invalid eventType: %d.", event.type); return; } DAudioSourceDevFunc &func = iter->second; diff --git a/services/audiomanager/managersource/src/daudio_source_manager.cpp b/services/audiomanager/managersource/src/daudio_source_manager.cpp index 1ab7ac89..fb1ec56a 100644 --- a/services/audiomanager/managersource/src/daudio_source_manager.cpp +++ b/services/audiomanager/managersource/src/daudio_source_manager.cpp @@ -95,10 +95,12 @@ int32_t DAudioSourceManager::Init(const sptr &callback) DHLOGE("load av transport receiver engine provider failed."); return ERR_DH_AUDIO_FAILED; } - isHicollieRunning_.store(true); - listenThread_ = std::thread(&DAudioSourceManager::ListenAudioDev, this); - if (pthread_setname_np(listenThread_.native_handle(), LISTEN_THREAD) != DH_SUCCESS) { - DHLOGE("Dev clear thread setname failed."); + if (!isHicollieRunning_.load()) { + isHicollieRunning_.store(true); + listenThread_ = std::thread(&DAudioSourceManager::ListenAudioDev, this); + if (pthread_setname_np(listenThread_.native_handle(), LISTEN_THREAD) != DH_SUCCESS) { + DHLOGE("Dev clear thread setname failed."); + } } // init event handler auto runner = AppExecFwk::EventRunner::Create(true); -- Gitee