From 366911ac01f994b27ce82614a77c30d2e535cac0 Mon Sep 17 00:00:00 2001 From: fanxiaoyu Date: Tue, 15 Nov 2022 02:35:58 +0000 Subject: [PATCH] Add GetRefCounter interface Signed-off-by: fanxiaoyu --- base/include/refbase.h | 2 ++ base/src/refbase.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/base/include/refbase.h b/base/include/refbase.h index 8122d81..e7df34a 100644 --- a/base/include/refbase.h +++ b/base/include/refbase.h @@ -188,6 +188,8 @@ public: WeakRefCounter *CreateWeakRef(void *cookie); + RefCounter *GetRefCounter() const; + void IncWeakRef(const void *objectId); void DecWeakRef(const void *objectId); diff --git a/base/src/refbase.cpp b/base/src/refbase.cpp index fb46127..ad5665e 100644 --- a/base/src/refbase.cpp +++ b/base/src/refbase.cpp @@ -361,7 +361,7 @@ bool RefCounter::AttemptIncStrong(const void *objectId) if (atomicStrong_.compare_exchange_weak(curCount, curCount + 1, std::memory_order_relaxed)) { break; } - curCount = atomicStrong_.load(std::memory_order_relaxed); + // curCount has been updated. } if (curCount <= 0) { DecWeakRefCount(objectId); @@ -511,6 +511,11 @@ void RefBase::IncWeakRef(const void *objectId) } } +RefCounter *RefBase::GetRefCounter() const +{ + return refs_; +} + void RefBase::DecWeakRef(const void *objectId) { if (refs_ != nullptr) { -- Gitee