summaryrefslogtreecommitdiffstats
path: root/Common/interface
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-08-28 02:05:29 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-08-28 02:05:29 +0000
commit7c138dc7dc655f878b5ef57c5038431f9508700c (patch)
tree423bad3ae7b578ac3f84d9e6d55b94eba81b911d /Common/interface
parentMoved Signal class from LockHelper.h to Signal.h (diff)
downloadDiligentCore-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.h12
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 );