MCPcopy Create free account
hub / github.com/Overload-Technologies/Overload / Dequeue

Method Dequeue

Dependencies/tracy/client/TracyProfiler.cpp:2358–2645  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2356}
2357
2358Profiler::DequeueStatus Profiler::Dequeue( moodycamel::ConsumerToken& token )
2359{
2360 bool connectionLost = false;
2361 const auto sz = GetQueue().try_dequeue_bulk_single( token,
2362 [this, &connectionLost] ( const uint32_t& threadId )
2363 {
2364 if( ThreadCtxCheck( threadId ) == ThreadCtxStatus::ConnectionLost ) connectionLost = true;
2365 },
2366 [this, &connectionLost] ( QueueItem* item, size_t sz )
2367 {
2368 if( connectionLost ) return;
2369 InitRpmalloc();
2370 assert( sz > 0 );
2371 int64_t refThread = m_refTimeThread;
2372 int64_t refCtx = m_refTimeCtx;
2373 int64_t refGpu = m_refTimeGpu;
2374 while( sz-- > 0 )
2375 {
2376 uint64_t ptr;
2377 uint16_t size;
2378 auto idx = MemRead<uint8_t>( &item->hdr.idx );
2379 if( idx < (int)QueueType::Terminate )
2380 {
2381 switch( (QueueType)idx )
2382 {
2383 case QueueType::ZoneText:
2384 case QueueType::ZoneName:
2385 ptr = MemRead<uint64_t>( &item->zoneTextFat.text );
2386 size = MemRead<uint16_t>( &item->zoneTextFat.size );
2387 SendSingleString( (const char*)ptr, size );
2388 tracy_free_fast( (void*)ptr );
2389 break;
2390 case QueueType::Message:
2391 case QueueType::MessageCallstack:
2392 ptr = MemRead<uint64_t>( &item->messageFat.text );
2393 size = MemRead<uint16_t>( &item->messageFat.size );
2394 SendSingleString( (const char*)ptr, size );
2395 tracy_free_fast( (void*)ptr );
2396 break;
2397 case QueueType::MessageColor:
2398 case QueueType::MessageColorCallstack:
2399 ptr = MemRead<uint64_t>( &item->messageColorFat.text );
2400 size = MemRead<uint16_t>( &item->messageColorFat.size );
2401 SendSingleString( (const char*)ptr, size );
2402 tracy_free_fast( (void*)ptr );
2403 break;
2404 case QueueType::MessageAppInfo:
2405 ptr = MemRead<uint64_t>( &item->messageFat.text );
2406 size = MemRead<uint16_t>( &item->messageFat.size );
2407 SendSingleString( (const char*)ptr, size );
2408#ifndef TRACY_ON_DEMAND
2409 tracy_free_fast( (void*)ptr );
2410#endif
2411 break;
2412 case QueueType::ZoneBeginAllocSrcLoc:
2413 case QueueType::ZoneBeginAllocSrcLocCallstack:
2414 {
2415 int64_t t = MemRead<int64_t>( &item->zoneBegin.time );

Callers

nothing calls this directly

Calls 4

tracy_free_fastFunction · 0.85
MemWriteFunction · 0.85
InitRpmallocFunction · 0.70

Tested by

no test coverage detected