/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/yt/threading/rw_spin_lock.cpp
33 строки
861 B
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#include "rw_spin_lock.h" namespace NYT::NThreading { //////////////////////////////////////////////////////////////////////////////// void TReaderWriterSpinLock::AcquireReaderSlow() noexcept { TSpinWait spinWait(Location_, ESpinLockActivityKind::Read); while (!TryAndTryAcquireReader()) { spinWait.Wait(); } } void TReaderWriterSpinLock::AcquireReaderForkFriendlySlow() noexcept { TSpinWait spinWait(Location_, ESpinLockActivityKind::Read); while (!TryAcquireReaderForkFriendly()) { spinWait.Wait(); } } void TReaderWriterSpinLock::AcquireWriterSlow() noexcept { TSpinWait spinWait(Location_, ESpinLockActivityKind::Write); while (!TryAndTryAcquireWriter()) { spinWait.Wait(); } } //////////////////////////////////////////////////////////////////////////////// } // namespace NYT::NThreading