diff options
Diffstat (limited to 'works/life/operating-system-experiment/Semaphore.h')
-rw-r--r-- | works/life/operating-system-experiment/Semaphore.h | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/works/life/operating-system-experiment/Semaphore.h b/works/life/operating-system-experiment/Semaphore.h deleted file mode 100644 index 430c036..0000000 --- a/works/life/operating-system-experiment/Semaphore.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef HEADER_SEMAPHORE_H -#define HEADER_SEMAPHORE_H - -#include "Base.h" - -#include <memory> - -#ifdef CRU_WINDOWS -#include <Windows.h> -#else -#include <semaphore.h> -#endif - -namespace cru { -class CRU_API Semaphore { -public: - explicit Semaphore(unsigned init_value = 1); - - Semaphore(const Semaphore &other) = delete; - Semaphore &operator=(const Semaphore &other) = delete; - - Semaphore(Semaphore &&other); - Semaphore &operator=(Semaphore &&other); - - ~Semaphore(); - -public: - void P(); - void V(); - - void Acquire(); - bool TryAcquire(); - void Release(); - -private: - void Destroy(); - -private: -#ifdef CRU_WINDOWS - HANDLE handle_ = nullptr; -#else - std::unique_ptr<sem_t> semaphore_; -#endif -}; -} // namespace cru - -#endif
\ No newline at end of file |