summaryrefslogtreecommitdiff
path: root/source/modules/asura-utils/threading/semaphore.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-utils/threading/semaphore.h')
-rw-r--r--source/modules/asura-utils/threading/semaphore.h86
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