diff --git a/services/devicemanagerservice/include/discovery/dm_discovery_manager.h b/services/devicemanagerservice/include/discovery/dm_discovery_manager.h index 135be035c0b3435d1f085e5b45cb7ef252e58cd9..bd657c60f856dca22c9a4193b113d991dea79d4b 100644 --- a/services/devicemanagerservice/include/discovery/dm_discovery_manager.h +++ b/services/devicemanagerservice/include/discovery/dm_discovery_manager.h @@ -85,6 +85,7 @@ private: std::queue discoveryQueue_; std::map discoveryContextMap_; std::shared_ptr timer_; + std::mutex lock_; }; } // namespace DistributedHardware } // namespace OHOS diff --git a/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp b/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp index 6d49b0439c089b98d56d513314b1c3fe6030cbcd..53f26d7957b1d403d5ec33a45b38354ece7f7f6c 100644 --- a/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp +++ b/services/devicemanagerservice/src/discovery/dm_discovery_manager.cpp @@ -39,6 +39,7 @@ DmDiscoveryManager::~DmDiscoveryManager() int32_t DmDiscoveryManager::StartDeviceDiscovery(const std::string &pkgName, const DmSubscribeInfo &subscribeInfo, const std::string &extra) { + std::lock_guard autoLock(lock_); if (!discoveryQueue_.empty()) { if (pkgName == discoveryQueue_.front()) { LOGE("DmDiscoveryManager::StartDeviceDiscovery repeated, pkgName:%s", pkgName.c_str()); @@ -66,6 +67,7 @@ int32_t DmDiscoveryManager::StartDeviceDiscovery(const std::string &pkgName, con int32_t DmDiscoveryManager::StopDeviceDiscovery(const std::string &pkgName, uint16_t subscribeId) { + std::lock_guard autoLock(lock_); if (!discoveryQueue_.empty()) { discoveryQueue_.pop(); }