summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/threading/spin_lock.h
Commit message (Collapse)AuthorAgeFilesLines
* Active spinlock tracking from pr3151306. Added TracelessGuards to disable ↵arkady-e1ppa2023-11-161-7/+8
| | | | | | | | | | | | | | | | | | | | mentioned tracking 1) Добавлена возможность инструментировать ваш любимый мьютекс/спинлок/что-либо с методами Acquire/Release со схожим смыслом. Делается это засчет методов ```NThreading::NDetail::RecordSpinlockAcquired```/```NThreading::NDetail::RecordSpinlockReleased```. Они отслеживают число захваченных спинлоков. 2) Добавлен макрос ```REGISTER_TRACKED_SPIN_LOCK_CLASS```, который позволяет номинально проверить на этапе компиляции, что данный спинлок отслеживается. 3) Добавлен метод ```NThreading::VerifyNoSpinlockAffinity```, который коркается, если число захваченных спинлоков больше нуля. 4) Добавлены Traceless версии (почти) всех гардов, чтобы можно было не отслеживать конкретную критическую секцию, если очень нужно. 5) Внутри файберного ```WaitUntilSet``` вызывается ```VerifyNoSpinlockAffinity``` -- делать ```WaitFor``` или ```Yield``` внутри отслеживаемых критических секций нельзя. Если очень хочется -- используем TracelessGuard нужного вида. 6) Теперь отслеживаются такие спинлоки и их наследники: ```TSpinLock```, ```TRecursiveSpinLock```, ```TReaderWriterSpinLock```. 7) Зарегистрированы как отслеживаемые все вышеперечисленные спинлоки и их Padded версии. 8) Все эти действия имеют эффект только в дебаг сборке. В релизе вся эта диагностика стирается.
* YT-17689: Move TFreeList to library/cpp/yt/memoryaleexfi2023-05-101-1/+2
| | | Iteration no. 2. First one reverted due to YT-18997
* Revert "YT-17689: Move TFreeList to library/cpp/yt/memory"aleexfi2023-04-171-2/+1
| | | | This reverts commit 617a1d07971366c19cdf278579ee9b1cbfa53db8, reversing changes made to 27e0312d3842c4e5e3ea6b09611c8f6ff6938dd6.
* YT-17689: Move TFreeList to library/cpp/yt/memoryaleexfi2023-03-171-1/+2
|
* fix ya.makemonster2022-07-071-0/+81