From af2ae8a4dd12fc4c7764ebb53e1807edbd4087b0 Mon Sep 17 00:00:00 2001 From: huyx Date: Fri, 6 Sep 2024 16:47:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3ipc=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=8A=A2=E9=94=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyx --- adapter/uhdf2/hdi/src/object_collector.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/adapter/uhdf2/hdi/src/object_collector.cpp b/adapter/uhdf2/hdi/src/object_collector.cpp index ac6bee61b..a281bb86f 100644 --- a/adapter/uhdf2/hdi/src/object_collector.cpp +++ b/adapter/uhdf2/hdi/src/object_collector.cpp @@ -15,6 +15,7 @@ #include "object_collector.h" #include +#include #include "hdf_base.h" #include "hdf_log.h" @@ -74,12 +75,13 @@ OHOS::sptr ObjectCollector::GetOrNewObject( } RETRY: - std::lock_guard lock(mutex_); + std::unique_lock lock(mutex_); auto it = interfaceObjectCollector_.find(interface.GetRefPtr()); if (it != interfaceObjectCollector_.end()) { if (it->second->GetSptrRefCount() == 0) { // may object is releasing, yield to sync - OsalMSleep(1); + lock.unlock(); + std::this_thread::yield(); goto RETRY; } return it->second.GetRefPtr(); -- Gitee From 4384f4b662300b553e65d74b476280f2e057a48c Mon Sep 17 00:00:00 2001 From: huyx Date: Fri, 6 Sep 2024 16:50:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3ipc=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=8A=A2=E9=94=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyx --- adapter/uhdf2/hdi/src/object_collector.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/adapter/uhdf2/hdi/src/object_collector.cpp b/adapter/uhdf2/hdi/src/object_collector.cpp index a281bb86f..b7b146a2a 100644 --- a/adapter/uhdf2/hdi/src/object_collector.cpp +++ b/adapter/uhdf2/hdi/src/object_collector.cpp @@ -16,7 +16,6 @@ #include "object_collector.h" #include #include - #include "hdf_base.h" #include "hdf_log.h" #include "osal_time.h" -- Gitee