From 73bf54f1fc277615e2b9d47297af2fba605b0245 Mon Sep 17 00:00:00 2001 From: wuzhihuitmac Date: Wed, 2 Jul 2025 09:17:02 +0800 Subject: [PATCH] Modify the issue about vibrator crash Signed-off-by: wuzhihuitmac Change-Id: I5494e0d15cd4431021992622ba4b060a2fb8de9c --- .../miscdevice_service/include/vibration_priority_manager.h | 1 + services/miscdevice_service/src/vibration_priority_manager.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/services/miscdevice_service/include/vibration_priority_manager.h b/services/miscdevice_service/include/vibration_priority_manager.h index 3f5bd43..f727f86 100644 --- a/services/miscdevice_service/include/vibration_priority_manager.h +++ b/services/miscdevice_service/include/vibration_priority_manager.h @@ -135,6 +135,7 @@ private: std::vector doNotDisturbWhiteList_; sptr currentUserObserver_; std::mutex currentUserObserverMutex_; + std::mutex whiteListMutex_; #endif // OHOS_BUILD_ENABLE_DO_NOT_DISTURB #ifdef OHOS_BUILD_ENABLE_VIBRATOR_CROWN std::atomic_int32_t miscCrownFeedback_ = FEEDBACK_MODE_INVALID; diff --git a/services/miscdevice_service/src/vibration_priority_manager.cpp b/services/miscdevice_service/src/vibration_priority_manager.cpp index 2cada5a..865fb5f 100644 --- a/services/miscdevice_service/src/vibration_priority_manager.cpp +++ b/services/miscdevice_service/src/vibration_priority_manager.cpp @@ -151,6 +151,7 @@ void VibrationPriorityManager::InitDoNotDisturbData() doNotDisturbSwitch_ = switchTemp; MISC_HILOGI("doNotDisturbSwitch:%{public}d", switchTemp); } + std::lock_guard whiteListLock(whiteListMutex_); if (doNotDisturbSwitch_ == DONOTDISTURB_SWITCH_ON) { std::vector whiteListTemp; int32_t whiteListRet = GetWhiteListValue(DO_NOT_DISTURB_WHITE_LIST, whiteListTemp); @@ -443,6 +444,7 @@ bool VibrationPriorityManager::IgnoreAppVibrations(const VibrateInfo &vibrateInf MISC_HILOGD("DoNotDisturbSwitch is off"); return false; } + std::lock_guard whiteListLock(whiteListMutex_); for (const WhiteListAppInfo &whiteListAppInfo : doNotDisturbWhiteList_) { if (vibrateInfo.packageName == whiteListAppInfo.bundle) { MISC_HILOGD("Not ignore app vibration, the app is on the whitelist, bundleName::%{public}s", -- Gitee