From 6e2d3f05ad91bb0f1b0b74ff1e5e6054c9ce3e82 Mon Sep 17 00:00:00 2001 From: shenpeixing Date: Sun, 9 Mar 2025 11:16:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9kill=E6=8E=89=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF=E8=BF=9B=E7=A8=8B=E5=90=8E=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E4=BE=9D=E6=97=A7=E8=BF=98=E5=9C=A8=E9=9C=87=E5=8A=A8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shenpeixing --- services/miscdevice_service/include/miscdevice_service.h | 1 + services/miscdevice_service/src/miscdevice_service.cpp | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/miscdevice_service/include/miscdevice_service.h b/services/miscdevice_service/include/miscdevice_service.h index 0350467..403cb21 100644 --- a/services/miscdevice_service/include/miscdevice_service.h +++ b/services/miscdevice_service/include/miscdevice_service.h @@ -90,6 +90,7 @@ private: bool InitLightInterface(); std::string GetPackageName(AccessTokenID tokenId); void StartVibrateThread(VibrateInfo info); + int32_t StopVibratorService(int32_t vibratorId); void StopVibrateThread(); bool ShouldIgnoreVibrate(const VibrateInfo &info); std::string GetCurrentTime(); diff --git a/services/miscdevice_service/src/miscdevice_service.cpp b/services/miscdevice_service/src/miscdevice_service.cpp index c41816b..f66028d 100644 --- a/services/miscdevice_service/src/miscdevice_service.cpp +++ b/services/miscdevice_service/src/miscdevice_service.cpp @@ -368,7 +368,6 @@ int32_t MiscdeviceService::Vibrate(int32_t vibratorId, int32_t timeOut, int32_t int32_t MiscdeviceService::StopVibrator(int32_t vibratorId) { - std::lock_guard lock(vibratorThreadMutex_); PermissionUtil &permissionUtil = PermissionUtil::GetInstance(); int32_t ret = permissionUtil.CheckVibratePermission(this->GetCallingTokenID(), VIBRATE_PERMISSION); if (ret != PERMISSION_GRANTED) { @@ -379,6 +378,12 @@ int32_t MiscdeviceService::StopVibrator(int32_t vibratorId) MISC_HILOGE("Result:%{public}d", ret); return PERMISSION_DENIED; } + return StopVibratorService(vibratorId); +} + +int32_t MiscdeviceService::StopVibratorService(int32_t vibratorId) +{ + std::lock_guard lock(vibratorThreadMutex_); #if defined (OHOS_BUILD_ENABLE_VIBRATOR_CUSTOM) && defined (HDF_DRIVERS_INTERFACE_VIBRATOR) if ((vibratorThread_ == nullptr) || (!vibratorThread_->IsRunning() && !vibratorHdiConnection_.IsVibratorRunning())) { @@ -913,7 +918,7 @@ void MiscdeviceService::ProcessDeathObserver(const wptr &object) int32_t vibratePid = info.pid; MISC_HILOGI("ClientPid:%{public}d, VibratePid:%{public}d", clientPid, vibratePid); if ((clientPid != INVALID_PID) && (clientPid == vibratePid)) { - StopVibrator(VIBRATOR_ID); + StopVibratorService(VIBRATOR_ID); } UnregisterClientDeathRecipient(client); } -- Gitee