#pragma once #include namespace NYT::NThreading { //////////////////////////////////////////////////////////////////////////////// class TSpinLockBase { public: constexpr TSpinLockBase(); explicit constexpr TSpinLockBase(const ::TSourceLocation& location); protected: const ::TSourceLocation Location_; }; //////////////////////////////////////////////////////////////////////////////// template class TSpinLockInplace : public TLock { public: TSpinLockInplace(); }; #define YT_SPIN_LOCK_INPLACE_TYPE(type) \ ::NYT::NThreading::TSpinLockInplace //////////////////////////////////////////////////////////////////////////////// } // namespace NYT::NThreading #define SPIN_LOCK_BASE_INL_H_ #include "spin_lock_base-inl.h" #undef SPIN_LOCK_BASE_INL_H_