diff options
Diffstat (limited to 'source/modules/asura-utils/threading/semaphore.h')
-rw-r--r-- | source/modules/asura-utils/threading/semaphore.h | 86 |
1 files changed, 42 insertions, 44 deletions
diff --git a/source/modules/asura-utils/threading/semaphore.h b/source/modules/asura-utils/threading/semaphore.h index c75ae8a..ae7b10b 100644 --- a/source/modules/asura-utils/threading/semaphore.h +++ b/source/modules/asura-utils/threading/semaphore.h @@ -7,64 +7,62 @@ #include <windows.h> #endif -namespace AsuraEngine -{ - namespace Threading - { +namespace_begin(AsuraEngine) +namespace_begin(Threading) - class SemaphoreImpl; +class SemaphoreImpl; - /// - /// ź - /// - class Semaphore - { - public: +/// +/// ź +/// +class Semaphore +{ +public: - Semaphore(unsigned int init_count = 1); - ~Semaphore(); + Semaphore(unsigned int init_count = 1); + ~Semaphore(); - void Signal(); - bool Wait(int timeout = ASURA_MUTEX_MAXWAIT); + void Signal(); + bool Wait(int timeout = ASURA_MUTEX_MAXWAIT); - private: - SemaphoreImpl* m_Impl; - }; +private: + SemaphoreImpl* m_Impl; +}; - class SemaphoreImpl - { - public: - SemaphoreImpl(unsigned int init_value) - : m_Count(init_value) - { - }; - virtual ~SemaphoreImpl() {}; - virtual void Signal() = 0; - virtual bool Wait(int timeout) = 0; - inline int Current() { return m_Count; } - protected: - unsigned int m_Count; - }; +class SemaphoreImpl +{ +public: + SemaphoreImpl(unsigned int init_value) + : m_Count(init_value) + { + }; + virtual ~SemaphoreImpl() {}; + virtual void Signal() = 0; + virtual bool Wait(int timeout) = 0; + inline int Current() { return m_Count; } +protected: + unsigned int m_Count; +}; #define wait(sem, ...) sem.Wait(__VA_ARGS__) #define signal(sem) sem.Signal() #if ASURA_THREAD_WIN32 - class SemaphoreWin32 : public SemaphoreImpl - { - public: - SemaphoreWin32(unsigned int init_value); - ~SemaphoreWin32(); - void Signal() override; - bool Wait(int timeout) override; - private: - HANDLE m_Sem; - }; +class SemaphoreWin32 : public SemaphoreImpl +{ +public: + SemaphoreWin32(unsigned int init_value); + ~SemaphoreWin32(); + void Signal() override; + bool Wait(int timeout) override; +private: + HANDLE m_Sem; +}; #endif // ASURA_THREAD_WIN32 - } -} +namespace_end +namespace_end #endif
\ No newline at end of file |