1
0
mirror of https://github.com/wolfpld/tracy synced 2025-04-29 04:23:51 +00:00

Add TracySetProgramName() macro to set broadcast contents.

This commit is contained in:
Bartosz Taudul 2023-03-30 21:51:00 +02:00
parent cade1d9705
commit e2e55a77b5
No known key found for this signature in database
GPG Key ID: B7FE2008B7575DF3
3 changed files with 21 additions and 0 deletions

View File

@ -1353,6 +1353,7 @@ Profiler::Profiler()
, m_queryImage( nullptr )
, m_queryData( nullptr )
, m_crashHandlerInstalled( false )
, m_programName( nullptr )
{
assert( !s_instance );
s_instance = this;
@ -1721,6 +1722,14 @@ void Profiler::Worker()
const auto t = std::chrono::high_resolution_clock::now().time_since_epoch().count();
if( t - lastBroadcast > 3000000000 ) // 3s
{
m_programNameLock.lock();
if( m_programName )
{
broadcastMsg = GetBroadcastMessage( m_programName, strlen( m_programName ), broadcastLen, dataPort );
m_programName = nullptr;
}
m_programNameLock.unlock();
lastBroadcast = t;
const auto ts = std::chrono::duration_cast<std::chrono::seconds>( std::chrono::system_clock::now().time_since_epoch() ).count();
broadcastMsg.activeTime = int32_t( ts - m_epoch );

View File

@ -677,6 +677,13 @@ public:
return m_isConnected.load( std::memory_order_acquire );
}
tracy_force_inline void SetProgramName( const char* name )
{
m_programNameLock.lock();
m_programName = name;
m_programNameLock.unlock();
}
#ifdef TRACY_ON_DEMAND
tracy_force_inline uint64_t ConnectionId() const
{
@ -964,6 +971,9 @@ private:
} m_prevSignal;
#endif
bool m_crashHandlerInstalled;
const char* m_programName;
TracyMutex m_programNameLock;
};
}

View File

@ -109,6 +109,7 @@
#define TracyParameterRegister(x,y)
#define TracyParameterSetup(x,y,z,w)
#define TracyIsConnected false
#define TracySetProgramName(x)
#define TracyFiberEnter(x)
#define TracyFiberLeave
@ -270,6 +271,7 @@
#define TracyParameterRegister( cb, data ) tracy::Profiler::ParameterRegister( cb, data )
#define TracyParameterSetup( idx, name, isBool, val ) tracy::Profiler::ParameterSetup( idx, name, isBool, val )
#define TracyIsConnected tracy::GetProfiler().IsConnected()
#define TracySetProgramName( name ) tracy::GetProfiler().SetProgramName( name );
#ifdef TRACY_FIBERS
# define TracyFiberEnter( fiber ) tracy::Profiler::EnterFiber( fiber )