Send initial configuration as a single message.

This commit is contained in:
Bartosz Taudul 2017-09-24 16:10:28 +02:00
parent fce04c6215
commit 7683da5f74
4 changed files with 28 additions and 10 deletions

View File

@ -144,15 +144,19 @@ void Profiler::Worker()
if( m_sock ) break; if( m_sock ) break;
} }
m_sock->Send( &m_timeBegin, sizeof( m_timeBegin ) ); {
WelcomeMessage welcome;
#ifdef DISABLE_LZ4 #ifdef DISABLE_LZ4
// notify client that lz4 compression is disabled (too slow in debug builds) // notify client that lz4 compression is disabled (too slow in debug builds)
char val = 0; welcome.lz4 = 0;
m_sock->Send( &val, 1 );
#else #else
char val = 1; welcome.lz4 = 1;
m_sock->Send( &val, 1 );
#endif #endif
welcome.timeBegin = m_timeBegin;
welcome.delay = m_delay;
m_sock->Send( &welcome, sizeof( welcome ) );
}
LZ4_resetStream( m_stream ); LZ4_resetStream( m_stream );

View File

@ -22,6 +22,15 @@ enum ServerQuery : uint8_t
ServerQueryThreadString ServerQueryThreadString
}; };
#pragma pack( 1 )
struct WelcomeMessage
{
uint8_t lz4;
uint64_t timeBegin;
uint64_t delay;
};
#pragma pack()
} }
#endif #endif

View File

@ -78,12 +78,15 @@ void View::Worker()
uint8_t lz4; uint8_t lz4;
uint64_t bytes = 0; uint64_t bytes = 0;
uint64_t timeStart;
if( !m_sock.Read( &timeStart, sizeof( timeStart ), &tv, ShouldExit ) ) goto close; {
if( !m_sock.Read( &lz4, sizeof( lz4 ), &tv, ShouldExit ) ) goto close; WelcomeMessage welcome;
if( !m_sock.Read( &welcome, sizeof( welcome ), &tv, ShouldExit ) ) goto close;
lz4 = welcome.lz4;
m_frames.push_back( welcome.timeBegin );
m_delay = welcome.delay;
}
m_frames.push_back( timeStart );
m_hasData.store( true, std::memory_order_release ); m_hasData.store( true, std::memory_order_release );
LZ4_setStreamDecode( m_stream, nullptr, 0 ); LZ4_setStreamDecode( m_stream, nullptr, 0 );

View File

@ -115,6 +115,8 @@ private:
int64_t m_zvStart; int64_t m_zvStart;
int64_t m_zvEnd; int64_t m_zvEnd;
uint64_t m_delay;
}; };
} }