From 4da962b08b5146886840a888e757489ebac0fa63 Mon Sep 17 00:00:00 2001 From: babenko Date: Mon, 18 Aug 2025 09:12:12 +0300 Subject: YT-18571: Refactor traced (fomerly tracked) spin locks and add unittests commit_hash:2476930524e6179b49fbf312f907bd03413cd8b8 --- library/cpp/yt/threading/fork_aware_spin_lock.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'library/cpp/yt/threading/fork_aware_spin_lock.cpp') diff --git a/library/cpp/yt/threading/fork_aware_spin_lock.cpp b/library/cpp/yt/threading/fork_aware_spin_lock.cpp index f43411b6d8c..a87cb179f02 100644 --- a/library/cpp/yt/threading/fork_aware_spin_lock.cpp +++ b/library/cpp/yt/threading/fork_aware_spin_lock.cpp @@ -10,6 +10,8 @@ void TForkAwareSpinLock::Acquire() noexcept { GetForkLock()->AcquireReaderForkFriendly(); SpinLock_.Acquire(); + // To compensate for one of the above acquisitions. + NDetail::RecordSpinLockReleased(); } bool TForkAwareSpinLock::TryAcquire() noexcept @@ -21,11 +23,15 @@ bool TForkAwareSpinLock::TryAcquire() noexcept GetForkLock()->ReleaseReader(); return false; } + // See Acquire. + NDetail::RecordSpinLockReleased(); return true; } void TForkAwareSpinLock::Release() noexcept { + // See Acquire. + NDetail::RecordSpinLockAcquired(); SpinLock_.Release(); GetForkLock()->ReleaseReader(); } -- cgit v1.3