From 8bfe54676f728076a92d802bb5d064e58265c8f2 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 6 Jun 2019 00:12:17 +0800 Subject: =?UTF-8?q?-=E6=96=87=E4=BB=B6=E5=A4=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/libs/asura-lib-utils/threading/mutex.h | 126 -------------------------- 1 file changed, 126 deletions(-) delete mode 100644 source/libs/asura-lib-utils/threading/mutex.h (limited to 'source/libs/asura-lib-utils/threading/mutex.h') 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 - -#include "../utils_config.h" - -#if ASURA_THREAD_WIN32 - #include -#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 -- cgit v1.1-26-g67d0