From 68f8f7e6ee5cf5daaa7d2e57016fde0210644d41 Mon Sep 17 00:00:00 2001 From: jiangminsen Date: Wed, 4 Sep 2024 09:27:46 +0800 Subject: [PATCH] =?UTF-8?q?cherry=20pick=207f0ae4e=20from=20https://gitee.?= =?UTF-8?q?com/jiangminsen/bundlemanager=5Fdistributed=5Fbundle=5Fframewor?= =?UTF-8?q?k/pulls/76=20=E6=9D=A1=E4=BB=B6=E7=AB=9E=E4=BA=89=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jiangminsen --- services/dbms/include/distributed_bms.h | 1 + services/dbms/src/distributed_bms.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/services/dbms/include/distributed_bms.h b/services/dbms/include/distributed_bms.h index 145c18c..d4e4309 100644 --- a/services/dbms/include/distributed_bms.h +++ b/services/dbms/include/distributed_bms.h @@ -144,6 +144,7 @@ private: std::shared_ptr dbmsDeviceManager_; std::shared_ptr distributedSub_; std::mutex bundleMgrMutex_; + std::mutex dbmsDeviceManagerMutex_; void Init(); void InitDeviceManager(); diff --git a/services/dbms/src/distributed_bms.cpp b/services/dbms/src/distributed_bms.cpp index 1b11085..1bde3d4 100644 --- a/services/dbms/src/distributed_bms.cpp +++ b/services/dbms/src/distributed_bms.cpp @@ -168,8 +168,11 @@ void DistributedBms::Init() void DistributedBms::InitDeviceManager() { if (dbmsDeviceManager_ == nullptr) { - APP_LOGI("Create device manager"); - dbmsDeviceManager_ = std::make_shared(); + std::lock_guard lock(dbmsDeviceManagerMutex_); + if (dbmsDeviceManager_ == nullptr) { + APP_LOGI("Create device manager"); + dbmsDeviceManager_ = std::make_shared(); + } } } -- Gitee