mirror of
https://github.com/wolfpld/tracy
synced 2025-05-01 13:13:53 +00:00
Preload next block size.
This commit is contained in:
parent
232379c72c
commit
4d892cbae9
@ -288,16 +288,26 @@ private:
|
|||||||
}
|
}
|
||||||
m_dataOffset = sizeof( hdr );
|
m_dataOffset = sizeof( hdr );
|
||||||
|
|
||||||
ReadBlock();
|
ReadBlock( ReadBlockSize() );
|
||||||
std::swap( m_buf, m_second );
|
std::swap( m_buf, m_second );
|
||||||
m_decThread = std::thread( [this] { Worker(); } );
|
m_decThread = std::thread( [this] { Worker(); } );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tracy_force_inline uint32_t ReadBlockSize()
|
||||||
|
{
|
||||||
|
uint32_t sz;
|
||||||
|
memcpy( &sz, m_data + m_dataOffset, sizeof( sz ) );
|
||||||
|
m_dataOffset += sizeof( sz );
|
||||||
|
return sz;
|
||||||
|
}
|
||||||
|
|
||||||
void Worker()
|
void Worker()
|
||||||
{
|
{
|
||||||
|
uint32_t blockSz = ReadBlockSize();
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
ReadBlock();
|
ReadBlock( blockSz );
|
||||||
|
if( m_lastBlock == BufSize ) blockSz = ReadBlockSize();
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
if( m_exit.load( std::memory_order_relaxed ) == true ) return;
|
if( m_exit.load( std::memory_order_relaxed ) == true ) return;
|
||||||
@ -355,14 +365,10 @@ private:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadBlock()
|
void ReadBlock( uint32_t sz )
|
||||||
{
|
{
|
||||||
if( m_dataOffset < m_dataSize )
|
if( m_dataOffset < m_dataSize )
|
||||||
{
|
{
|
||||||
uint32_t sz;
|
|
||||||
memcpy( &sz, m_data + m_dataOffset, sizeof( sz ) );
|
|
||||||
m_dataOffset += sizeof( sz );
|
|
||||||
|
|
||||||
if( m_stream )
|
if( m_stream )
|
||||||
{
|
{
|
||||||
m_lastBlock = (size_t)LZ4_decompress_safe_continue( m_stream, m_data + m_dataOffset, m_second, sz, BufSize );
|
m_lastBlock = (size_t)LZ4_decompress_safe_continue( m_stream, m_data + m_dataOffset, m_second, sz, BufSize );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user