summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-utils/threading/mutex.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-28 08:56:15 +0800
committerchai <chaifix@163.com>2019-03-28 08:56:15 +0800
commit3bced067a4144381e59ce4bd0eb749eeff5ad1f4 (patch)
tree0352c8ae263dae904967f9e21326ce2a4ca9ada8 /source/libs/asura-lib-utils/threading/mutex.h
parentf6bcacef6e10200b1c0dc34c4aa34313cbfc0392 (diff)
*misc
Diffstat (limited to 'source/libs/asura-lib-utils/threading/mutex.h')
-rw-r--r--source/libs/asura-lib-utils/threading/mutex.h33
1 files changed, 27 insertions, 6 deletions
diff --git a/source/libs/asura-lib-utils/threading/mutex.h b/source/libs/asura-lib-utils/threading/mutex.h
index 5ed45ae..51fe63e 100644
--- a/source/libs/asura-lib-utils/threading/mutex.h
+++ b/source/libs/asura-lib-utils/threading/mutex.h
@@ -49,6 +49,7 @@ namespace AsuraEngine
Mutex& m;
};
+// ڵջӴλÿʼջΪٽ
#define lock(mutex) Lock _asura_scoped_lock_0x0_(mutex)
#define lock2(mutex) Lock _asura_scoped_lock_0x1_(mutex)
#define lock3(mutex) Lock _asura_scoped_lock_0x2_(mutex)
@@ -67,27 +68,47 @@ namespace AsuraEngine
};
-#if ASURA_THREAD_WIN32
+#if ASURA_MUTEX_WIN32_CRITICLE_SECTION
//https://blog.csdn.net/l799623787/article/details/18259949
- class MutexImplWin32 ASURA_FINAL : public MutexImpl
+ class MutexImplWin32_CS ASURA_FINAL : public MutexImpl
{
public:
- MutexImplWin32();
- ~MutexImplWin32();
+ MutexImplWin32_CS();
+ ~MutexImplWin32_CS();
void Lock() override;
void Unlock() override;
- private:
+ private:
//HANDLE mHandle;
CRITICAL_SECTION mMutex;
};
-#endif // ASURA_THREAD_WIN32
+#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