1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Add fiber support on client side.

This commit is contained in:
Bartosz Taudul
2021-11-01 23:56:19 +01:00
parent 8b15cd049c
commit 229d547e91
5 changed files with 64 additions and 2 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ namespace tracy
constexpr unsigned Lz4CompressBound( unsigned isize ) { return isize + ( isize / 255 ) + 16; }
enum : uint32_t { ProtocolVersion = 51 };
enum : uint32_t { ProtocolVersion = 52 };
enum : uint16_t { BroadcastVersion = 2 };
using lz4sz_t = uint32_t;
+20 -1
View File
@@ -59,6 +59,8 @@ enum class QueueType : uint8_t
SymbolInformation,
CodeInformation,
ExternalNameMetadata,
FiberEnter,
FiberLeave,
Terminate,
KeepAlive,
ThreadContext,
@@ -236,6 +238,19 @@ struct QueueLockAnnounce
LockType type;
};
struct QueueFiberEnter
{
int64_t time;
uint64_t fiber; // ptr
uint32_t thread;
};
struct QueueFiberLeave
{
int64_t time;
uint32_t thread;
};
struct QueueLockTerminate
{
uint32_t id;
@@ -692,6 +707,8 @@ struct QueueItem
QueueParamSetup paramSetup;
QueueCpuTopology cpuTopology;
QueueExternalNameMetadata externalNameMetadata;
QueueFiberEnter fiberEnter;
QueueFiberLeave fiberLeave;
};
};
#pragma pack()
@@ -750,7 +767,9 @@ static constexpr size_t QueueDataSize[] = {
sizeof( QueueHeader ) + sizeof( QueueCallstackFrameSize ),
sizeof( QueueHeader ) + sizeof( QueueSymbolInformation ),
sizeof( QueueHeader ) + sizeof( QueueCodeInformation ),
sizeof( QueueHeader), // ExternalNameMetadata - not for wire transfer
sizeof( QueueHeader ), // ExternalNameMetadata - not for wire transfer
sizeof( QueueHeader ) + sizeof( QueueFiberEnter ),
sizeof( QueueHeader ) + sizeof( QueueFiberLeave ),
// above items must be first
sizeof( QueueHeader ), // terminate
sizeof( QueueHeader ), // keep alive