mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 04:23:51 +00:00
Workaround gcc stupidity.
This commit is contained in:
parent
77dfefb5d0
commit
e23da05a65
@ -19,7 +19,7 @@ public:
|
||||
: m_id( s_lockCounter.fetch_add( 1, std::memory_order_relaxed ) )
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockAnnounce;
|
||||
@ -37,7 +37,7 @@ public:
|
||||
const auto thread = GetThreadHandle();
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockWait;
|
||||
@ -51,7 +51,7 @@ public:
|
||||
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockObtain;
|
||||
@ -68,7 +68,7 @@ public:
|
||||
|
||||
uint32_t cpu;
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockRelease;
|
||||
@ -85,7 +85,7 @@ public:
|
||||
{
|
||||
uint32_t cpu;
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockObtain;
|
||||
@ -100,7 +100,7 @@ public:
|
||||
tracy_force_inline void Mark( const SourceLocation* srcloc ) const
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::LockMark;
|
||||
|
@ -56,7 +56,7 @@ enum { QueuePrealloc = 256 * 1024 };
|
||||
|
||||
static moodycamel::ConcurrentQueue<QueueItem> init_order(101) s_queue( QueueItemSize * QueuePrealloc );
|
||||
static thread_local moodycamel::ProducerToken init_order(102) s_token_detail( s_queue );
|
||||
thread_local moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* init_order(103) s_token = s_queue.get_explicit_producer( s_token_detail );
|
||||
thread_local ProducerWrapper init_order(103) s_token { s_queue.get_explicit_producer( s_token_detail ) };
|
||||
|
||||
std::atomic<uint64_t> s_id( 0 );
|
||||
|
||||
@ -227,7 +227,7 @@ void Profiler::SendSourceLocation( uint64_t ptr )
|
||||
item.srcloc.function = (uint64_t)srcloc->function;
|
||||
item.srcloc.line = srcloc->line;
|
||||
item.srcloc.color = srcloc->color;
|
||||
s_token->enqueue<moodycamel::CanAlloc>( std::move( item ) );
|
||||
s_token.ptr->enqueue<moodycamel::CanAlloc>( std::move( item ) );
|
||||
}
|
||||
|
||||
bool Profiler::HandleServerQuery()
|
||||
|
@ -31,7 +31,12 @@ struct SourceLocation
|
||||
uint32_t color;
|
||||
};
|
||||
|
||||
extern thread_local moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* s_token;
|
||||
struct ProducerWrapper
|
||||
{
|
||||
moodycamel::ConcurrentQueue<QueueItem>::ExplicitProducer* ptr;
|
||||
};
|
||||
|
||||
extern thread_local ProducerWrapper s_token;
|
||||
|
||||
using Magic = moodycamel::ConcurrentQueueDefaultTraits::index_t;
|
||||
|
||||
@ -69,7 +74,7 @@ public:
|
||||
{
|
||||
uint32_t cpu;
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::FrameMarkMsg;
|
||||
|
@ -18,7 +18,7 @@ public:
|
||||
const auto thread = GetThreadHandle();
|
||||
m_thread = thread;
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::ZoneBegin;
|
||||
@ -31,7 +31,7 @@ public:
|
||||
tracy_force_inline ~ScopedZone()
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::ZoneEnd;
|
||||
@ -46,7 +46,7 @@ public:
|
||||
auto ptr = new char[size+1];
|
||||
memcpy( ptr, txt, size );
|
||||
ptr[size] = '\0';
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::ZoneText;
|
||||
@ -58,7 +58,7 @@ public:
|
||||
tracy_force_inline void Name( const char* name )
|
||||
{
|
||||
Magic magic;
|
||||
auto& token = s_token;
|
||||
auto& token = s_token.ptr;
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin<moodycamel::CanAlloc>( magic );
|
||||
item->hdr.type = QueueType::ZoneName;
|
||||
|
Loading…
x
Reference in New Issue
Block a user