summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/threading/spin_lock_count.cpp
diff options
context:
space:
mode:
authorbabenko <[email protected]>2025-08-18 09:12:12 +0300
committerbabenko <[email protected]>2025-08-18 09:39:02 +0300
commit4da962b08b5146886840a888e757489ebac0fa63 (patch)
tree335a8b55b1ab3e783bc3ea1a548467ba39d99a59 /library/cpp/yt/threading/spin_lock_count.cpp
parent38c1f726de8947517b6e9c2ff3ff8425803a0619 (diff)
YT-18571: Refactor traced (fomerly tracked) spin locks and add unittests
commit_hash:2476930524e6179b49fbf312f907bd03413cd8b8
Diffstat (limited to 'library/cpp/yt/threading/spin_lock_count.cpp')
-rw-r--r--library/cpp/yt/threading/spin_lock_count.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/library/cpp/yt/threading/spin_lock_count.cpp b/library/cpp/yt/threading/spin_lock_count.cpp
index b1670e92d4a..008a5a66ad5 100644
--- a/library/cpp/yt/threading/spin_lock_count.cpp
+++ b/library/cpp/yt/threading/spin_lock_count.cpp
@@ -7,21 +7,19 @@
#include <util/system/types.h>
-namespace NYT::NThreading::NPrivate {
+namespace NYT::NThreading {
+
+////////////////////////////////////////////////////////////////////////////////
#ifndef NDEBUG
-////////////////////////////////////////////////////////////////////////////////
+namespace NDetail {
YT_DEFINE_THREAD_LOCAL(i64, ActiveSpinLockCount, 0);
-////////////////////////////////////////////////////////////////////////////////
-
-void RecordSpinLockAcquired(bool isAcquired)
+void RecordSpinLockAcquired()
{
- if (isAcquired) {
- ActiveSpinLockCount()++;
- }
+ ActiveSpinLockCount()++;
}
void RecordSpinLockReleased()
@@ -30,14 +28,21 @@ void RecordSpinLockReleased()
ActiveSpinLockCount()--;
}
+} // namespace NDetail
+
+int GetActiveSpinLockCount()
+{
+ return NDetail::ActiveSpinLockCount();
+}
+
void VerifyNoSpinLockAffinity()
{
- YT_VERIFY(ActiveSpinLockCount() == 0);
+ YT_VERIFY(NDetail::ActiveSpinLockCount() == 0);
}
#endif
////////////////////////////////////////////////////////////////////////////////
-} // namespace NYT::NThreading::NPrivate
+} // namespace NYT::NThreading