diff options
Diffstat (limited to 'source/modules/asura-utils/threading/mutex.h')
-rw-r--r-- | source/modules/asura-utils/threading/mutex.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/source/modules/asura-utils/threading/mutex.h b/source/modules/asura-utils/threading/mutex.h index a3fbea5..7afbe35 100644 --- a/source/modules/asura-utils/threading/mutex.h +++ b/source/modules/asura-utils/threading/mutex.h @@ -14,6 +14,8 @@ namespace AsuraEngine namespace Threading { +#define ASURA_MUTEX_MAXWAIT (~(uint32)0) + class MutexImpl; class Mutex @@ -44,17 +46,15 @@ namespace AsuraEngine { m.Unlock(); } + operator bool() { return false; }; 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) +#define lock(m) \ + if(_mutex_locker _asura_mutex_locker = m){} else ASURA_ABSTRACT class MutexImpl { |