diff options
| author | babenko <[email protected]> | 2025-08-18 09:12:12 +0300 |
|---|---|---|
| committer | babenko <[email protected]> | 2025-08-18 09:39:02 +0300 |
| commit | 4da962b08b5146886840a888e757489ebac0fa63 (patch) | |
| tree | 335a8b55b1ab3e783bc3ea1a548467ba39d99a59 /library/cpp/yt/threading/fork_aware_spin_lock.cpp | |
| parent | 38c1f726de8947517b6e9c2ff3ff8425803a0619 (diff) | |
YT-18571: Refactor traced (fomerly tracked) spin locks and add unittests
commit_hash:2476930524e6179b49fbf312f907bd03413cd8b8
Diffstat (limited to 'library/cpp/yt/threading/fork_aware_spin_lock.cpp')
| -rw-r--r-- | library/cpp/yt/threading/fork_aware_spin_lock.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
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(); } |
