aboutsummaryrefslogtreecommitdiffstats
path: root/util/ysafeptr.h
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /util/ysafeptr.h
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'util/ysafeptr.h')
-rw-r--r--util/ysafeptr.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/util/ysafeptr.h b/util/ysafeptr.h
index 22395ea3e3..ab5f26fb1b 100644
--- a/util/ysafeptr.h
+++ b/util/ysafeptr.h
@@ -33,10 +33,11 @@ private:
#ifdef CHECK_YPTR2
static Y_POD_THREAD(bool) DisableThreadCheck;
void CheckThreadId() {
- if (dwThreadId == 0)
+ if (dwThreadId == 0) {
dwThreadId = GetCurrentThreadId();
- else
+ } else {
Y_ASSERT(dwThreadId == GetCurrentThreadId() || DisableThreadCheck);
+ }
}
void AddRef() {
CheckThreadId();
@@ -69,14 +70,16 @@ private:
void ReleaseRef() {
CheckThreadId();
--RefData;
- if (RefData == 0)
+ if (RefData == 0) {
ReleaseRefComplete();
+ }
}
void ReleaseObj(int nRef, int nMask) {
CheckThreadId();
ObjData -= nRef;
- if ((ObjData & nMask) == 0)
+ if ((ObjData & nMask) == 0) {
ReleaseObjComplete(nMask);
+ }
}
protected:
@@ -262,18 +265,21 @@ private:
void AddRef(TUserObj* _ptr) {
TRef p;
- if (_ptr)
+ if (_ptr) {
p.AddRef(CastToObjectBase(_ptr));
+ }
}
void DecRef(TUserObj* _ptr) {
TRef p;
- if (_ptr)
+ if (_ptr) {
p.DecRef(CastToObjectBase(_ptr));
+ }
}
void Release(TUserObj* _ptr) {
TRef p;
- if (_ptr)
+ if (_ptr) {
p.Release(CastToObjectBase(_ptr));
+ }
}
protected: