From 7c138dc7dc655f878b5ef57c5038431f9508700c Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Mon, 27 Aug 2018 19:05:29 -0700 Subject: Removed from LockHelper.h (fixed https://github.com/DiligentGraphics/DiligentCore/issues/26) --- Common/interface/LockHelper.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Common/interface') 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 - #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 ); -- cgit v1.2.3