summaryrefslogtreecommitdiffstats
path: root/library/cpp/threading/cron/cron.cpp
diff options
context:
space:
mode:
authortobo <[email protected]>2026-01-22 11:05:27 +0300
committertobo <[email protected]>2026-01-22 11:41:03 +0300
commit9c970d152e508c48bb4f1239065e4fd20e2a8619 (patch)
tree791f23c913e26f093e64033d9f5532289af3b237 /library/cpp/threading/cron/cron.cpp
parent1d7bb883c2ff9b622bfa29f1de93fde43e06906e (diff)
TAtomic => std::atomic in library/cpp/threading/cron + cosmetics
commit_hash:3705bbac91a604b06838ca310e992f1b7728426d
Diffstat (limited to 'library/cpp/threading/cron/cron.cpp')
-rw-r--r--library/cpp/threading/cron/cron.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/library/cpp/threading/cron/cron.cpp b/library/cpp/threading/cron/cron.cpp
index e7c1c59735b..9affc5d1f25 100644
--- a/library/cpp/threading/cron/cron.cpp
+++ b/library/cpp/threading/cron/cron.cpp
@@ -1,16 +1,17 @@
#include "cron.h"
-#include <library/cpp/deprecated/atomic/atomic.h>
-
#include <util/system/thread.h>
#include <util/system/event.h>
+#include <atomic>
+#include <utility>
+
using namespace NCron;
namespace {
- struct TPeriodicHandle: public IHandle {
- inline TPeriodicHandle(TJob job, TDuration interval, const TString& threadName)
- : Job(job)
+ struct TPeriodicHandle: IHandle {
+ TPeriodicHandle(TJob job, const TDuration interval, const TString& threadName)
+ : Job(std::move(job))
, Interval(interval)
, Done(false)
{
@@ -22,26 +23,26 @@ namespace {
Thread->Start();
}
- static inline void* DoRun(void* data) noexcept {
- ((TPeriodicHandle*)data)->Run();
+ static void* DoRun(void* data) noexcept {
+ static_cast<TPeriodicHandle*>(data)->Run();
return nullptr;
}
- inline void Run() noexcept {
+ void Run() noexcept {
while (true) {
Job();
Event.WaitT(Interval);
- if (AtomicGet(Done)) {
+ if (Done.load()) {
return;
}
}
}
~TPeriodicHandle() override {
- AtomicSet(Done, true);
+ Done.store(true);
Event.Signal();
Thread->Join();
}
@@ -49,21 +50,21 @@ namespace {
TJob Job;
TDuration Interval;
TManualEvent Event;
- TAtomic Done;
+ std::atomic<bool> Done;
THolder<TThread> Thread;
};
}
IHandlePtr NCron::StartPeriodicJob(TJob job) {
- return NCron::StartPeriodicJob(job, TDuration::Seconds(0), "");
+ return NCron::StartPeriodicJob(std::move(job), TDuration::Seconds(0), TString());
}
-IHandlePtr NCron::StartPeriodicJob(TJob job, TDuration interval) {
- return NCron::StartPeriodicJob(job, interval, "");
+IHandlePtr NCron::StartPeriodicJob(TJob job, const TDuration interval) {
+ return NCron::StartPeriodicJob(std::move(job), interval, TString());
}
IHandlePtr NCron::StartPeriodicJob(TJob job, TDuration interval, const TString& threadName) {
- return new TPeriodicHandle(job, interval, threadName);
+ return new TPeriodicHandle(std::move(job), interval, threadName);
}
IHandle::~IHandle() = default;