diff --git a/src/Semaphore.hh b/src/Semaphore.hh deleted file mode 100644 index c026185..0000000 --- a/src/Semaphore.hh +++ /dev/null @@ -1,51 +0,0 @@ -// This file is under GNU General Public License 3.0 -// see LICENSE.txt - -#ifndef LIBPEPADAPTER_SEMAPHORE_HH -#define LIBPEPADAPTER_SEMAPHORE_HH - -#include -#include -#include - -namespace pEp { - class Semaphore { - std::mutex mtx; - std::condition_variable cv; - // Atomic types are types that encapsulate a value whose access is guaranteed - // to not cause data races and can be used to synchronize memory accesses among - // different threads. - // To synchronize threads, ALWAYS use types - std::atomic_bool _stop; - - public: - Semaphore() : _stop(false) {} - - void stop() - { - std::unique_lock lock(mtx); - _stop.store(true); - } - - void try_wait() - { - std::unique_lock lock(mtx); - if (!_stop.load()) { - return; - } - - while (_stop.load()) { - cv.wait(lock); - } - } - - void go() - { - std::unique_lock lock(mtx); - _stop.store(false); - cv.notify_all(); - } - }; -} // namespace pEp - -#endif // LIBPEPADAPTER_SEMAPHORE_HH