summaryrefslogtreecommitdiffstats
path: root/util/ysafeptr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'util/ysafeptr.cpp')
-rw-r--r--util/ysafeptr.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/util/ysafeptr.cpp b/util/ysafeptr.cpp
index 96f25140673..db2ff21ec0c 100644
--- a/util/ysafeptr.cpp
+++ b/util/ysafeptr.cpp
@@ -1,5 +1,7 @@
#include "ysafeptr.h"
+#include <util/system/sanitizers.h>
+
#ifdef CHECK_YPTR2
Y_POD_THREAD(bool)
IObjectBase::DisableThreadCheck;
@@ -24,6 +26,11 @@ void IObjectBase::ReleaseObjComplete(int nMask) {
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
+void IObjectBase::UnpoisonCounters() noexcept {
+ NSan::Unpoison(&ObjData, sizeof(ObjData));
+ NSan::Unpoison(&RefData, sizeof(RefData));
+}
+////////////////////////////////////////////////////////////////////////////////////////////////////
void IObjectBase::ReleaseRefComplete() {
assert(RefData == 0);
if ((ObjData & 0x3fffffff) == 0) {