From 14bf6e9ab2e2a49e7b066904080cf9e121a348d9 Mon Sep 17 00:00:00 2001 From: kulikov Date: Fri, 20 Mar 2026 19:39:06 +0300 Subject: Switch to std atomics commit_hash:5d980b19ed177f3a4ce03ba7c7d89ab9d711b8e8 --- library/cpp/threading/equeue/equeue_ut.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'library/cpp/threading/equeue/equeue_ut.cpp') diff --git a/library/cpp/threading/equeue/equeue_ut.cpp b/library/cpp/threading/equeue/equeue_ut.cpp index 47b1029a2f9..0b66128c73d 100644 --- a/library/cpp/threading/equeue/equeue_ut.cpp +++ b/library/cpp/threading/equeue/equeue_ut.cpp @@ -44,10 +44,10 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { Processed = Scheduled = Discarded = Total = 0; } - TAtomic Processed; - TAtomic Scheduled; - TAtomic Discarded; - TAtomic Total; + std::atomic Processed; + std::atomic Scheduled; + std::atomic Discarded; + std::atomic Total; }; static TCounters Counters; @@ -61,7 +61,7 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { struct TWaitJob: public IObjectInQueue { void Process(void*) override { WaitEvent.Wait(); - AtomicIncrement(Counters.Processed); + ++Counters.Processed; } } job; @@ -87,7 +87,7 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { UNIT_ASSERT_VALUES_EQUAL(0u, TEnv::Queue->ObjectCount()); UNIT_ASSERT_VALUES_EQUAL(0u, TEnv::Queue->Size()); - UNIT_ASSERT_VALUES_EQUAL((size_t)Counters.Processed, enqueued); + UNIT_ASSERT_VALUES_EQUAL(Counters.Processed.load(), enqueued); } Y_UNIT_TEST(FillTest) { @@ -101,25 +101,25 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { //concurrent test -- send many jobs from different threads struct TJob: public IObjectInQueue { void Process(void*) override { - AtomicIncrement(Counters.Processed); + ++Counters.Processed; } }; static TJob Job; template static bool TryAdd() { - AtomicIncrement(Counters.Total); + ++Counters.Total; if (TEnv::Queue->Add(&Job)) { - AtomicIncrement(Counters.Scheduled); + ++Counters.Scheduled; return true; } else { - AtomicIncrement(Counters.Discarded); + ++Counters.Discarded; return false; } } const size_t N = 100000; - static size_t TryCounter; + static std::atomic TryCounter; template void ConcurrentTest() { @@ -128,7 +128,7 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { struct TSender: public IThreadFactory::IThreadAble { void DoExecute() override { - while ((size_t)AtomicIncrement(TryCounter) <= N) { + while (++TryCounter <= N) { if (!TryAdd()) { Sleep(TDuration::MicroSeconds(50)); } @@ -149,9 +149,9 @@ Y_UNIT_TEST_SUITE(TElasticQueueTest) { } } - UNIT_ASSERT_VALUES_EQUAL((size_t)Counters.Total, N); - UNIT_ASSERT_VALUES_EQUAL(Counters.Processed, Counters.Scheduled); - UNIT_ASSERT_VALUES_EQUAL(Counters.Total, Counters.Scheduled + Counters.Discarded); + UNIT_ASSERT_VALUES_EQUAL(Counters.Total.load(), N); + UNIT_ASSERT_VALUES_EQUAL(Counters.Processed.load(), Counters.Scheduled.load()); + UNIT_ASSERT_VALUES_EQUAL(Counters.Total.load(), Counters.Scheduled.load() + Counters.Discarded.load()); } Y_UNIT_TEST(ConcurrentTest) { -- cgit v1.3