From eee8ca7eb897ffc22c01948972ff80f76a3e4e4e Mon Sep 17 00:00:00 2001 From: l00804143 Date: Sat, 13 May 2023 11:42:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=9D=A1=E4=BB=B6=E7=AB=9E?= =?UTF-8?q?=E4=BA=89=E9=97=AE=E9=A2=98=20Signed-off-by:=20l00804143=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aams/include/accessible_ability_manager_service.h | 1 + .../aams/src/accessible_ability_manager_service.cpp | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/services/aams/include/accessible_ability_manager_service.h b/services/aams/include/accessible_ability_manager_service.h index 276b27a44..a5d27c3fa 100644 --- a/services/aams/include/accessible_ability_manager_service.h +++ b/services/aams/include/accessible_ability_manager_service.h @@ -286,6 +286,7 @@ private: sptr configCallbackDeathRecipient_ = nullptr; sptr bundleManagerDeathRecipient_ = nullptr; std::vector> stateCallbacks_; + std::mutex mutex_; }; } // namespace Accessibility } // namespace OHOS diff --git a/services/aams/src/accessible_ability_manager_service.cpp b/services/aams/src/accessible_ability_manager_service.cpp index b350982f7..d7ac7514c 100644 --- a/services/aams/src/accessible_ability_manager_service.cpp +++ b/services/aams/src/accessible_ability_manager_service.cpp @@ -291,10 +291,13 @@ uint32_t AccessibleAbilityManagerService::RegisterStateObserver( return; } callback->AsObject()->AddDeathRecipient(stateCallbackDeathRecipient_); - auto iter = std::find(stateCallbacks_.begin(), stateCallbacks_.end(), callback); - if (iter == stateCallbacks_.end()) { - stateCallbacks_.push_back(callback); - HILOG_INFO("RegisterStateObserver successfully"); + { + std::lock_guard lock(mutex_); + auto iter = std::find(stateCallbacks_.begin(), stateCallbacks_.end(), callback); + if (iter == stateCallbacks_.end()) { + stateCallbacks_.push_back(callback); + HILOG_INFO("RegisterStateObserver successfully"); + } } sptr accountData = GetCurrentAccountData();