diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-08-28 02:05:29 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-08-28 02:05:29 +0000 |
| commit | 7c138dc7dc655f878b5ef57c5038431f9508700c (patch) | |
| tree | 423bad3ae7b578ac3f84d9e6d55b94eba81b911d /Common/interface | |
| parent | Moved Signal class from LockHelper.h to Signal.h (diff) | |
| download | DiligentCore-7c138dc7dc655f878b5ef57c5038431f9508700c.tar.gz DiligentCore-7c138dc7dc655f878b5ef57c5038431f9508700c.zip | |
Removed <thread> from LockHelper.h (fixed https://github.com/DiligentGraphics/DiligentCore/issues/26)
Diffstat (limited to 'Common/interface')
| -rw-r--r-- | Common/interface/LockHelper.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Common/interface/LockHelper.h b/Common/interface/LockHelper.h index 32ae9cf5..0605bfb5 100644 --- a/Common/interface/LockHelper.h +++ b/Common/interface/LockHelper.h @@ -23,8 +23,6 @@ #pragma once -#include <thread> - #include "../../Platforms/interface/Atomics.h" #include "../../Platforms/Basic/interface/DebugUtilities.h" @@ -101,7 +99,9 @@ public: static void UnsafeLock(LockFlag &LockFlag) { while( !UnsafeTryLock( LockFlag ) ) - std::this_thread::yield(); + { + YieldThread(); + } } void Lock(LockFlag &LockFlag) @@ -109,7 +109,9 @@ public: VERIFY( m_pLockFlag == NULL, "Object already locked" ); // Wait for the flag to become unlocked and lock it while( !TryLock( LockFlag ) ) - std::this_thread::yield(); + { + YieldThread(); + } } static void UnsafeUnlock(LockFlag &LockFlag) @@ -125,6 +127,8 @@ public: } private: + static void YieldThread(); + LockFlag *m_pLockFlag; LockHelper( const LockHelper &LockHelper ); const LockHelper& operator = ( const LockHelper &LockHelper ); |
