summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/threading/mutex.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-29 22:51:04 +0800
committerchai <chaifix@163.com>2019-03-29 22:51:04 +0800
commitc302f5ae5f9e30a28e487e8a764d9cc31546bbea (patch)
tree7f18bedeece950600336ea7ced7c52c468552c98 /source/libs/asura-lib-utils/threading/mutex.h
parent157530b8b6e11efc5573d5a0db8987a440197aa1 (diff)
*rename
Diffstat (limited to 'source/libs/asura-lib-utils/threading/mutex.h')
-rw-r--r--source/libs/asura-lib-utils/threading/mutex.h126
1 files changed, 0 insertions, 126 deletions
diff --git a/source/libs/asura-lib-utils/threading/mutex.h b/source/libs/asura-lib-utils/threading/mutex.h
deleted file mode 100644
index 7e7d877..0000000
--- a/source/libs/asura-lib-utils/threading/mutex.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef __ASURA_MUTEX_H__
-#define __ASURA_MUTEX_H__
-
-#include <asura-lib-utils/type.h>
-
-#include "../utils_config.h"
-
-#if ASURA_THREAD_WIN32
- #include <windows.h>
-#endif
-
-namespace AsuraEngine
-{
- namespace Threading
- {
-
- class MutexImpl;
-
- class Mutex
- {
- public:
-
- Mutex();
- ~Mutex();
-
- void Lock();
- void Unlock();
-
- private:
-
- MutexImpl* mImpl;
-
- };
-
- class _mutex_locker
- {
- public:
- _mutex_locker(Mutex& mutex)
- : m(mutex)
- {
- m.Lock();
- };
- ~_mutex_locker()
- {
- m.Unlock();
- }
- private:
- void* operator new(size_t);
- Mutex& m;
- };
-
-// ڵջӴλÿʼջΪٽ
-#define lock(mutex) _mutex_locker _asura_scoped_lock_0x0(mutex)
-#define lock2(mutex) _mutex_locker _asura_scoped_lock_0x1(mutex)
-#define lock3(mutex) _mutex_locker _asura_scoped_lock_0x2(mutex)
-#define lock4(mutex) _mutex_locker _asura_scoped_lock_0x3(mutex)
-#define lock5(mutex) _mutex_locker _asura_scoped_lock_0x4(mutex)
-
- ASURA_ABSTRACT class MutexImpl
- {
- public:
-
- MutexImpl() {};
- virtual ~MutexImpl() {};
-
- virtual void Lock() = 0;
- virtual void Unlock() = 0;
-
- };
-
-#if ASURA_MUTEX_WIN32_CRITICLE_SECTION
-
- //https://blog.csdn.net/l799623787/article/details/18259949
- class MutexImplWin32_CS ASURA_FINAL : public MutexImpl
- {
- public:
-
- MutexImplWin32_CS();
- ~MutexImplWin32_CS();
-
- void Lock() override;
- void Unlock() override;
-
- private:
-
- //HANDLE mHandle;
- CRITICAL_SECTION mMutex;
-
- };
-
-#endif // ASURA_MUTEX_WIN32_CRITICLE_SECTION
-
-#if ASURA_MUTEX_WIN32_KERNAL_MUTEX
-
- class MutexImplWin32_KM ASURA_FINAL : public MutexImpl
- {
- public:
-
- MutexImplWin32_KM();
- ~MutexImplWin32_KM();
-
- void Lock() override;
- void Unlock() override;
-
- private:
-
- HANDLE mHandle;
-
- };
-
-#endif // ASURA_MUTEX_WIN32_KERNAL_MUTEX
-
-#if ASURA_THREAD_STD
-
- class MutexImplSTD ASURA_FINAL : public MutexImpl
- {
- };
-
-#endif // ASURA_THREAD_STD
-
- }
-}
-
-namespace AEThreading = AsuraEngine::Threading;
-
-#endif \ No newline at end of file