From 0cc42ceb2169bf397f54227b8aa5edb6502a87c2 Mon Sep 17 00:00:00 2001 From: shenpeixing Date: Fri, 7 Mar 2025 17:01:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=80=E6=AD=BB=E5=B7=B2=E6=8C=82=E8=B5=B7?= =?UTF-8?q?=E7=9A=84=E8=BF=9B=E7=A8=8B=E4=B8=8D=E5=8F=AF=E4=BB=A5=E5=86=8D?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=A2=AB=E6=8B=89=E8=B5=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shenpeixing --- services/include/sensor_power_policy.h | 1 + services/src/sensor_power_policy.cpp | 11 +++++++++++ services/src/sensor_service.cpp | 1 + 3 files changed, 13 insertions(+) diff --git a/services/include/sensor_power_policy.h b/services/include/sensor_power_policy.h index c8be3166..b1dba0d6 100644 --- a/services/include/sensor_power_policy.h +++ b/services/include/sensor_power_policy.h @@ -32,6 +32,7 @@ public: ErrCode ResetSensors(); std::vector GetActiveInfoList(int32_t pid); void ReportActiveInfo(const ActiveInfo &activeInfo, const std::vector &sessionList); + void DeleteDeathPidSensorInfo(int32_t pid); private: bool CheckFreezingSensor(int32_t sensorId); diff --git a/services/src/sensor_power_policy.cpp b/services/src/sensor_power_policy.cpp index f4adf2a9..e5c81748 100644 --- a/services/src/sensor_power_policy.cpp +++ b/services/src/sensor_power_policy.cpp @@ -259,5 +259,16 @@ void SensorPowerPolicy::ReportActiveInfo(const ActiveInfo &activeInfo, } } } + +void SensorPowerPolicy::DeleteDeathPidSensorInfo(int32_t pid) +{ + CALL_LOG_ENTER; + std::lock_guard pidSensorInfoLock(pidSensorInfoMutex_); + auto pidSensorInfoIt = pidSensorInfoMap_.find(pid); + if (pidSensorInfoIt != pidSensorInfoMap_.end()) { + SEN_HILOGD("Delete death pid sensor info, pid:%{public}d", pid); + pidSensorInfoMap_.erase(pidSensorInfoIt); + } +} } // namespace Sensors } // namespace OHOS \ No newline at end of file diff --git a/services/src/sensor_service.cpp b/services/src/sensor_service.cpp index 3a2a7442..84f939d2 100644 --- a/services/src/sensor_service.cpp +++ b/services/src/sensor_service.cpp @@ -537,6 +537,7 @@ void SensorService::ProcessDeathObserver(const wptr &object) clientInfo_.DestroySensorChannel(pid); clientInfo_.DestroyClientPid(client); clientInfo_.DestroyCmd(clientInfo_.GetUidByPid(pid)); + POWER_POLICY.DeleteDeathPidSensorInfo(pid); } void SensorService::RegisterClientDeathRecipient(sptr sensorClient, int32_t pid) -- Gitee