mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 04:23:51 +00:00
Add a separate method for clearing serial queue.
This commit is contained in:
parent
bccb845908
commit
c0b524d8de
@ -1614,23 +1614,26 @@ void Profiler::ClearQueues( moodycamel::ConsumerToken& token )
|
||||
for( size_t i=0; i<sz; i++ ) FreeAssociatedMemory( m_itemBuf[i] );
|
||||
}
|
||||
|
||||
ClearSerial();
|
||||
}
|
||||
|
||||
void Profiler::ClearSerial()
|
||||
{
|
||||
bool lockHeld = true;
|
||||
while( !m_serialLock.try_lock() )
|
||||
{
|
||||
bool lockHeld = true;
|
||||
while( !m_serialLock.try_lock() )
|
||||
if( m_shutdownManual.load( std::memory_order_relaxed ) )
|
||||
{
|
||||
if( m_shutdownManual.load( std::memory_order_relaxed ) )
|
||||
{
|
||||
lockHeld = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for( auto& v : m_serialQueue ) FreeAssociatedMemory( v );
|
||||
m_serialQueue.clear();
|
||||
if( lockHeld )
|
||||
{
|
||||
m_serialLock.unlock();
|
||||
lockHeld = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for( auto& v : m_serialQueue ) FreeAssociatedMemory( v );
|
||||
m_serialQueue.clear();
|
||||
if( lockHeld )
|
||||
{
|
||||
m_serialLock.unlock();
|
||||
}
|
||||
|
||||
for( auto& v : m_serialDequeue ) FreeAssociatedMemory( v );
|
||||
m_serialDequeue.clear();
|
||||
|
@ -452,6 +452,7 @@ private:
|
||||
void CompressWorker();
|
||||
|
||||
void ClearQueues( tracy::moodycamel::ConsumerToken& token );
|
||||
void ClearSerial();
|
||||
DequeueStatus Dequeue( tracy::moodycamel::ConsumerToken& token );
|
||||
DequeueStatus DequeueSerial();
|
||||
bool AppendData( const void* data, size_t len );
|
||||
|
Loading…
x
Reference in New Issue
Block a user