summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt
diff options
context:
space:
mode:
authordann239 <[email protected]>2026-04-29 13:05:49 +0300
committerdann239 <[email protected]>2026-04-29 13:36:58 +0300
commitecec96bec80b2bb134672a52de4d67eca8cd480a (patch)
tree8c5cf1a30bc9e204f24e53032e64ab00c383387b /library/cpp/yt
parentde0eeebe107fc761c301eca66c9e05dd7d599808 (diff)
YT_DECLARE_SPIN_LOCK whack-a-mole 2: electric boogaloo, Theatrical Cut
commit_hash:946123c814d23e070516ef5f7d339cf6025547b6
Diffstat (limited to 'library/cpp/yt')
-rw-r--r--library/cpp/yt/threading/at_fork.cpp3
-rw-r--r--library/cpp/yt/threading/fork_aware_rw_spin_lock.h4
-rw-r--r--library/cpp/yt/threading/fork_aware_spin_lock.h4
-rw-r--r--library/cpp/yt/threading/rw_spin_lock.h4
-rw-r--r--library/cpp/yt/threading/spin_lock.h4
-rw-r--r--library/cpp/yt/threading/unittests/recursive_spin_lock_ut.cpp4
-rw-r--r--library/cpp/yt/threading/unittests/rw_spin_lock_ut.cpp12
-rw-r--r--library/cpp/yt/threading/unittests/spin_lock_count_ut.cpp8
8 files changed, 23 insertions, 20 deletions
diff --git a/library/cpp/yt/threading/at_fork.cpp b/library/cpp/yt/threading/at_fork.cpp
index bcf05f0c3b8..040047646ea 100644
--- a/library/cpp/yt/threading/at_fork.cpp
+++ b/library/cpp/yt/threading/at_fork.cpp
@@ -46,7 +46,7 @@ public:
private:
DECLARE_LEAKY_SINGLETON_FRIEND()
- TWriterStarvingRWSpinLock ForkLock_;
+ YT_DECLARE_SPIN_LOCK(TWriterStarvingRWSpinLock, ForkLock_);
struct TAtForkHandlerSet
{
@@ -137,4 +137,3 @@ TWriterStarvingRWSpinLock* GetForkLock()
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT::NThreading
-
diff --git a/library/cpp/yt/threading/fork_aware_rw_spin_lock.h b/library/cpp/yt/threading/fork_aware_rw_spin_lock.h
index 1fa1dd737b4..9a23b1f3c42 100644
--- a/library/cpp/yt/threading/fork_aware_rw_spin_lock.h
+++ b/library/cpp/yt/threading/fork_aware_rw_spin_lock.h
@@ -15,8 +15,8 @@ public:
TForkAwareReaderWriterSpinLock(const TForkAwareReaderWriterSpinLock&) = delete;
TForkAwareReaderWriterSpinLock& operator =(const TForkAwareReaderWriterSpinLock&) = delete;
- // TODO(babenko): make use of location.
- explicit constexpr TForkAwareReaderWriterSpinLock(const ::TSourceLocation& /*location*/)
+ explicit constexpr TForkAwareReaderWriterSpinLock(const ::TSourceLocation& location)
+ : SpinLock_(location)
{ }
void AcquireReader() noexcept;
diff --git a/library/cpp/yt/threading/fork_aware_spin_lock.h b/library/cpp/yt/threading/fork_aware_spin_lock.h
index 99acf6ec0ec..c4a6ae2ba85 100644
--- a/library/cpp/yt/threading/fork_aware_spin_lock.h
+++ b/library/cpp/yt/threading/fork_aware_spin_lock.h
@@ -21,8 +21,8 @@ public:
constexpr TForkAwareSpinLock() = default;
- // TODO(babenko): make use of location.
- explicit constexpr TForkAwareSpinLock(const ::TSourceLocation& /*location*/)
+ explicit constexpr TForkAwareSpinLock(const ::TSourceLocation& location)
+ : SpinLock_(location)
{ }
void Acquire() noexcept;
diff --git a/library/cpp/yt/threading/rw_spin_lock.h b/library/cpp/yt/threading/rw_spin_lock.h
index 0b29e0c7073..a530d556b76 100644
--- a/library/cpp/yt/threading/rw_spin_lock.h
+++ b/library/cpp/yt/threading/rw_spin_lock.h
@@ -181,7 +181,9 @@ using TReaderWriterSpinLock = NDetail::TUncheckedReaderWriterSpinLock;
//! A variant of TReaderWriterSpinLock occupying the whole cache line.
class alignas(CacheLineSize) TPaddedReaderWriterSpinLock
: public TReaderWriterSpinLock
-{ };
+{
+ using TReaderWriterSpinLock::TReaderWriterSpinLock;
+};
////////////////////////////////////////////////////////////////////////////////
diff --git a/library/cpp/yt/threading/spin_lock.h b/library/cpp/yt/threading/spin_lock.h
index f090f306f68..a69b83a3001 100644
--- a/library/cpp/yt/threading/spin_lock.h
+++ b/library/cpp/yt/threading/spin_lock.h
@@ -70,7 +70,9 @@ private:
//! A variant of TSpinLock occupying the whole cache line.
class alignas(CacheLineSize) TPaddedSpinLock
: public TSpinLock
-{ };
+{
+ using TSpinLock::TSpinLock;
+};
////////////////////////////////////////////////////////////////////////////////
diff --git a/library/cpp/yt/threading/unittests/recursive_spin_lock_ut.cpp b/library/cpp/yt/threading/unittests/recursive_spin_lock_ut.cpp
index b5b75d75fff..f5a36880944 100644
--- a/library/cpp/yt/threading/unittests/recursive_spin_lock_ut.cpp
+++ b/library/cpp/yt/threading/unittests/recursive_spin_lock_ut.cpp
@@ -12,7 +12,7 @@ namespace {
TEST(TRecursiveSpinLockTest, SingleThread)
{
- TRecursiveSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TRecursiveSpinLock, lock);
EXPECT_FALSE(lock.IsLocked());
EXPECT_TRUE(lock.TryAcquire());
EXPECT_TRUE(lock.IsLocked());
@@ -31,7 +31,7 @@ TEST(TRecursiveSpinLockTest, SingleThread)
TEST(TRecursiveSpinLockTest, TwoThreads)
{
- TRecursiveSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TRecursiveSpinLock, lock);
TEvent e1, e2, e3, e4, e5, e6, e7;
std::jthread t1([&] {
diff --git a/library/cpp/yt/threading/unittests/rw_spin_lock_ut.cpp b/library/cpp/yt/threading/unittests/rw_spin_lock_ut.cpp
index e987a967a83..c3fbb5cc0b1 100644
--- a/library/cpp/yt/threading/unittests/rw_spin_lock_ut.cpp
+++ b/library/cpp/yt/threading/unittests/rw_spin_lock_ut.cpp
@@ -17,7 +17,7 @@ TEST(TReaderWriterSpinLockTest, WriterPriority)
std::latch latch(readerThreads + 1);
std::atomic<size_t> finishedCount = {0};
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
volatile std::atomic<ui32> x = {0};
@@ -51,7 +51,7 @@ TEST(TReaderWriterSpinLockTest, WriterPriority)
TEST(TReaderWriterSpinLockDeathTest, ReaderReentrance)
{
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
EXPECT_DEBUG_DEATH({
auto guard1 = ReaderGuard(lock);
@@ -61,7 +61,7 @@ TEST(TReaderWriterSpinLockDeathTest, ReaderReentrance)
TEST(TReaderWriterSpinLockDeathTest, MixedReentrance)
{
- NDetail::TCheckedReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(NDetail::TCheckedReaderWriterSpinLock, lock);
EXPECT_DEATH({
auto guard1 = ReaderGuard(lock);
@@ -71,7 +71,7 @@ TEST(TReaderWriterSpinLockDeathTest, MixedReentrance)
TEST(TReaderWriterSpinLockDeathTest, TryReaderReentrance)
{
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
EXPECT_DEBUG_DEATH({
auto guard = ReaderGuard(lock);
@@ -81,7 +81,7 @@ TEST(TReaderWriterSpinLockDeathTest, TryReaderReentrance)
TEST(TReaderWriterSpinLockDeathTest, TryWriterReentrance)
{
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
EXPECT_DEBUG_DEATH({
auto guard = WriterGuard(lock);
@@ -91,7 +91,7 @@ TEST(TReaderWriterSpinLockDeathTest, TryWriterReentrance)
TEST(TReaderWriterSpinLockDeathTest, ReleaseUnacquiredLock)
{
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
EXPECT_DEBUG_DEATH({
lock.ReleaseReader();
diff --git a/library/cpp/yt/threading/unittests/spin_lock_count_ut.cpp b/library/cpp/yt/threading/unittests/spin_lock_count_ut.cpp
index 1534fe2c7d5..7e71ca55c2c 100644
--- a/library/cpp/yt/threading/unittests/spin_lock_count_ut.cpp
+++ b/library/cpp/yt/threading/unittests/spin_lock_count_ut.cpp
@@ -15,7 +15,7 @@ namespace {
TEST(TSpinLockCountTest, SpinLock)
{
EXPECT_EQ(GetActiveSpinLockCount(), 0);
- TSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TSpinLock, lock);
auto guard = Guard(lock);
EXPECT_EQ(GetActiveSpinLockCount(), 1);
guard.Release();
@@ -25,7 +25,7 @@ TEST(TSpinLockCountTest, SpinLock)
TEST(TSpinLockCountTest, RecursiveSpinLock)
{
EXPECT_EQ(GetActiveSpinLockCount(), 0);
- TRecursiveSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TRecursiveSpinLock, lock);
auto guard1 = Guard(lock);
EXPECT_EQ(GetActiveSpinLockCount(), 1);
auto guard2 = Guard(lock);
@@ -39,7 +39,7 @@ TEST(TSpinLockCountTest, RecursiveSpinLock)
TEST(TSpinLockCountTest, ForkAwareSpinLock)
{
EXPECT_EQ(GetActiveSpinLockCount(), 0);
- TForkAwareSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TForkAwareSpinLock, lock);
auto guard = Guard(lock);
EXPECT_EQ(GetActiveSpinLockCount(), 1);
guard.Release();
@@ -49,7 +49,7 @@ TEST(TSpinLockCountTest, ForkAwareSpinLock)
TEST(TSpinLockCountTest, RWSpinLock)
{
EXPECT_EQ(GetActiveSpinLockCount(), 0);
- TReaderWriterSpinLock lock;
+ YT_DECLARE_SPIN_LOCK(TReaderWriterSpinLock, lock);
auto readerGuard = ReaderGuard(lock);
EXPECT_EQ(GetActiveSpinLockCount(), 1);
readerGuard.Release();