aboutsummaryrefslogtreecommitdiffstats
path: root/util/ysafeptr.h
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
commit31773f157bf8164364649b5f470f52dece0a4317 (patch)
tree33d0f7eef45303ab68cf08ab381ce5e5e36c5240 /util/ysafeptr.h
parent2c7938962d8689e175574fc1e817c05049f27905 (diff)
parenteff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff)
downloadydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz
Merge branch 'rightlib' into mergelibs-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: