Add atomic signal implementation

This commit is contained in:
Henrik Stickann
2022-04-10 15:24:22 +02:00
parent b369f34092
commit 46cd2417e3
2 changed files with 56 additions and 0 deletions

29
src/atomic_signal.cpp Normal file
View File

@@ -0,0 +1,29 @@
#include <sta/atomic_signal.hpp>
namespace sta
{
AtomicSignal::AtomicSignal()
: signal_{false}
{}
void AtomicSignal::notify()
{
signal_.store(true);
}
bool AtomicSignal::peek()
{
return signal_.load();
}
bool AtomicSignal::test()
{
return signal_.exchange(false);
}
void AtomicSignal::wait()
{
while (!signal_.exchange(false));
}
} // namespace sta