From 7f0ae4e82bbe709b47a77eef29a7c0596ae7e955 Mon Sep 17 00:00:00 2001 From: jiangminsen Date: Wed, 4 Sep 2024 09:27:46 +0800 Subject: [PATCH] =?UTF-8?q?=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