1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Use _mm_pause() instead of std::this_thread::yield() if possible.

This commit is contained in:
Bartosz Taudul
2019-12-31 14:59:54 +01:00
parent 8b56386ccd
commit 3a460d3183
5 changed files with 36 additions and 4 deletions
+4 -3
View File
@@ -10,6 +10,7 @@
#include <thread>
#include "TracyFileHeader.hpp"
#include "TracyYield.hpp"
#include "../common/tracy_lz4.hpp"
#include "../common/TracyForceInline.hpp"
@@ -188,7 +189,7 @@ private:
{
if( m_exit.load( std::memory_order_relaxed ) == true ) return;
if( m_signalSwitch.load( std::memory_order_relaxed ) == true ) break;
std::this_thread::yield();
YieldThread();
}
m_signalSwitch.store( false, std::memory_order_relaxed );
std::swap( m_buf, m_second );
@@ -212,7 +213,7 @@ private:
if( m_offset == BufSize )
{
m_signalSwitch.store( true, std::memory_order_relaxed );
while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { std::this_thread::yield(); }
while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { YieldThread(); }
m_signalAvailable.store( false, std::memory_order_relaxed );
}
@@ -231,7 +232,7 @@ private:
if( m_offset == BufSize )
{
m_signalSwitch.store( true, std::memory_order_relaxed );
while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { std::this_thread::yield(); }
while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { YieldThread(); }
m_signalAvailable.store( false, std::memory_order_relaxed );
}