diff --git a/services/samgr/native/source/collect/common_event_collect.cpp b/services/samgr/native/source/collect/common_event_collect.cpp index 03573d8206e2676dd1fc7520d1657da750fbefbf..2d497567cf509e2d2f30b777241b229cabea01e1 100644 --- a/services/samgr/native/source/collect/common_event_collect.cpp +++ b/services/samgr/native/source/collect/common_event_collect.cpp @@ -385,8 +385,10 @@ void CommonEventCollect::SaveOnDemandConditionExtraData(const EventFwk::CommonEv void CommonEventCollect::RemoveOnDemandReasonExtraData(int64_t extraDataId) { - std::lock_guard autoLock(extraDataLock_); - extraDatas_.erase(extraDataId); + { + std::lock_guard autoLock(extraDataLock_); + extraDatas_.erase(extraDataId); + } HILOGD("CommonEventCollect remove extraData %{public}d", static_cast(extraDataId)); RemoveSaExtraDataId(extraDataId); } @@ -459,13 +461,16 @@ void CommonEventCollect::ClearSaExtraDataId(int32_t saId) int32_t CommonEventCollect::GetSaExtraDataIdList(int32_t saId, std::vector& extraDataidList, const std::string& eventName) { - std::lock_guard autoLock(saExtraDataIdLock_); - if (saExtraDataIdMap_.count(saId) == 0) { - HILOGD("NF exId SA:%{public}d", saId); - return ERR_OK; + std::list temp; + { + std::lock_guard autoLock(saExtraDataIdLock_); + if (saExtraDataIdMap_.count(saId) == 0) { + HILOGD("NF exId SA:%{public}d", saId); + return ERR_OK; + } + HILOGD("get exId SA:%{public}d event:%{public}s", saId, eventName.c_str()); + temp = saExtraDataIdMap_[saId]; } - HILOGD("get exId SA:%{public}d event:%{public}s", saId, eventName.c_str()); - std::list temp = saExtraDataIdMap_[saId]; if (eventName == "") { std::copy(temp.begin(), temp.end(), std::back_inserter(extraDataidList)); return ERR_OK;