recursive_spin_lock.cpp 445 B

1234567891011121314151617
  1. #include "recursive_spin_lock.h"
  2. namespace NYT::NThreading {
  3. ////////////////////////////////////////////////////////////////////////////////
  4. void TRecursiveSpinLock::AcquireSlow() noexcept
  5. {
  6. TSpinWait spinWait(Location_, ESpinLockActivityKind::ReadWrite);
  7. while (!TryAndTryAcquire()) {
  8. spinWait.Wait();
  9. }
  10. }
  11. ////////////////////////////////////////////////////////////////////////////////
  12. } // namespace NYT::NThreading