mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Send keep alive messages to determine if client disconnected.
This commit is contained in:
parent
a0188122a0
commit
c056f3be41
@ -286,6 +286,7 @@ void Profiler::Worker()
|
|||||||
m_sock->Send( &welcome, sizeof( welcome ) );
|
m_sock->Send( &welcome, sizeof( welcome ) );
|
||||||
LZ4_resetStream( m_stream );
|
LZ4_resetStream( m_stream );
|
||||||
|
|
||||||
|
int keepAlive = 0;
|
||||||
for(;;)
|
for(;;)
|
||||||
{
|
{
|
||||||
const auto status = Dequeue( token );
|
const auto status = Dequeue( token );
|
||||||
@ -297,8 +298,28 @@ void Profiler::Worker()
|
|||||||
else if( status == QueueEmpty && serialStatus == QueueEmpty )
|
else if( status == QueueEmpty && serialStatus == QueueEmpty )
|
||||||
{
|
{
|
||||||
if( ShouldExit() ) break;
|
if( ShouldExit() ) break;
|
||||||
if( m_bufferOffset != m_bufferStart ) CommitData();
|
if( m_bufferOffset != m_bufferStart )
|
||||||
std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) );
|
{
|
||||||
|
if( !CommitData() ) break;
|
||||||
|
}
|
||||||
|
if( keepAlive == 500 )
|
||||||
|
{
|
||||||
|
QueueItem ka;
|
||||||
|
ka.hdr.type = QueueType::KeepAlive;
|
||||||
|
AppendData( &ka, QueueDataSize[ka.hdr.idx] );
|
||||||
|
if( !CommitData() ) break;
|
||||||
|
|
||||||
|
keepAlive = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
keepAlive++;
|
||||||
|
std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
keepAlive = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
while( m_sock->HasData() )
|
while( m_sock->HasData() )
|
||||||
|
|||||||
@ -1639,6 +1639,8 @@ void Worker::Process( const QueueItem& ev )
|
|||||||
case QueueType::Terminate:
|
case QueueType::Terminate:
|
||||||
m_terminate = true;
|
m_terminate = true;
|
||||||
break;
|
break;
|
||||||
|
case QueueType::KeepAlive:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
assert( false );
|
assert( false );
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user