summaryrefslogtreecommitdiffstats
path: root/util/system/event.cpp
diff options
context:
space:
mode:
authoreeight <[email protected]>2022-05-20 00:26:58 +0300
committereeight <[email protected]>2022-05-20 00:26:58 +0300
commit13950b7049e70b9e0adf3cbe48a527f9e8d25e3c (patch)
tree65359e6418fb7833b826e97044c58c55485941cb /util/system/event.cpp
parentd98cd6128e8838e19ae1a95be34385af299dd62a (diff)
IGNIETFERRO-1105 Get rid of TAtomic in system/{atexit, event, shellcommand}
ref:c74bffae7e90dee515f5089979fc050d20a34e4e
Diffstat (limited to 'util/system/event.cpp')
-rw-r--r--util/system/event.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/util/system/event.cpp b/util/system/event.cpp
index ceb9134a3d7..42311d48352 100644
--- a/util/system/event.cpp
+++ b/util/system/event.cpp
@@ -1,6 +1,5 @@
#include "defaults.h"
-#include "atomic.h"
#include "event.h"
#include "mutex.h"
#include "condvar.h"
@@ -9,6 +8,8 @@
#include "winint.h"
#endif
+#include <atomic>
+
class TSystemEvent::TEvImpl: public TAtomicRefCount<TSystemEvent::TEvImpl> {
public:
#ifdef _win_
@@ -49,12 +50,12 @@ public:
}
inline void Signal() noexcept {
- if (Manual && AtomicGet(Signaled)) {
+ if (Manual && Signaled.load(std::memory_order_acquire)) {
return; // shortcut
}
with_lock (Mutex) {
- AtomicSet(Signaled, 1);
+ Signaled.store(true, std::memory_order_release);
}
if (Manual) {
@@ -65,27 +66,27 @@ public:
}
inline void Reset() noexcept {
- AtomicSet(Signaled, 0);
+ Signaled.store(false, std::memory_order_release);
}
inline bool WaitD(TInstant deadLine) noexcept {
- if (Manual && AtomicGet(Signaled)) {
+ if (Manual && Signaled.load(std::memory_order_acquire)) {
return true; // shortcut
}
bool resSignaled = true;
with_lock (Mutex) {
- while (!AtomicGet(Signaled)) {
+ while (!Signaled.load(std::memory_order_acquire)) {
if (!Cond.WaitD(Mutex, deadLine)) {
- resSignaled = AtomicGet(Signaled); // timed out, but Signaled could have been set
+ resSignaled = Signaled.load(std::memory_order_acquire); // timed out, but Signaled could have been set
break;
}
}
if (!Manual) {
- AtomicSet(Signaled, 0);
+ Signaled.store(false, std::memory_order_release);
}
}
@@ -99,7 +100,7 @@ private:
#else
TCondVar Cond;
TMutex Mutex;
- TAtomic Signaled = 0;
+ std::atomic<bool> Signaled = false;
bool Manual;
#endif
};