Merge pull request #1149 from anderswk-ioi/master

Fix crash due to freeing elements of m_serialDequeue twice.
This commit is contained in:
Bartosz Taudul
2025-09-11 00:56:50 +02:00
committed by GitHub

View File

@@ -2846,9 +2846,13 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
}
}
DequeueStatus dequeueStatus = DequeueStatus::QueueEmpty;
const auto sz = m_serialDequeue.size();
if( sz > 0 )
{
dequeueStatus = DequeueStatus::DataDequeued;
InitRpmalloc();
int64_t refSerial = m_refTimeSerial;
int64_t refGpu = m_refTimeGpu;
@@ -3145,7 +3149,10 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
}
}
#endif
if( !AppendData( item, QueueDataSize[idx] ) ) return DequeueStatus::ConnectionLost;
if(dequeueStatus != DequeueStatus::ConnectionLost && !AppendData( item, QueueDataSize[idx] ) )
{
dequeueStatus = DequeueStatus::ConnectionLost;
}
item++;
}
m_refTimeSerial = refSerial;
@@ -3155,11 +3162,7 @@ Profiler::DequeueStatus Profiler::DequeueSerial()
#endif
m_serialDequeue.clear();
}
else
{
return DequeueStatus::QueueEmpty;
}
return DequeueStatus::DataDequeued;
return dequeueStatus;
}
Profiler::ThreadCtxStatus Profiler::ThreadCtxCheck( uint32_t threadId )