Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf.pld@gmail.com>2019-02-16 22:42:50 +0300
committerBartosz Taudul <wolf.pld@gmail.com>2019-02-16 22:42:50 +0300
commit470600fbc2a8cf498df4c4c64cfa1b9747de30e7 (patch)
tree2e3acc0adedb8533ac7d74397a02fa06084ba7ef /server/TracyFileRead.hpp
parentc127f5176740928f1210c32df40b2f4af28821ca (diff)
Don't thrash memory bandwith during file load.
Diffstat (limited to 'server/TracyFileRead.hpp')
-rw-r--r--server/TracyFileRead.hpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/server/TracyFileRead.hpp b/server/TracyFileRead.hpp
index 54614ff9..2b07255d 100644
--- a/server/TracyFileRead.hpp
+++ b/server/TracyFileRead.hpp
@@ -142,6 +142,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();
}
m_signalSwitch.store( false, std::memory_order_relaxed );
std::swap( m_buf, m_second );
@@ -165,7 +166,7 @@ private:
if( m_offset == BufSize )
{
m_signalSwitch.store( true, std::memory_order_relaxed );
- while( m_signalAvailable.load( std::memory_order_acquire ) == false ) {}
+ while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { std::this_thread::yield(); }
m_signalAvailable.store( false, std::memory_order_relaxed );
}
@@ -184,7 +185,7 @@ private:
if( m_offset == BufSize )
{
m_signalSwitch.store( true, std::memory_order_relaxed );
- while( m_signalAvailable.load( std::memory_order_acquire ) == false ) {}
+ while( m_signalAvailable.load( std::memory_order_acquire ) == false ) { std::this_thread::yield(); }
m_signalAvailable.store( false, std::memory_order_relaxed );
}