From 12a6306c0bca450b4d0da5ebe94a6aef23c5bd66 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 10 Sep 2017 20:09:14 +0200 Subject: [PATCH] Allow queuing zones. --- client/TracyProfiler.cpp | 14 ++++++++++++++ client/TracyProfiler.hpp | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index d5dc0067..52c4c897 100755 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -44,6 +44,20 @@ uint64_t Profiler::GetNewId() return s_instance->m_id.fetch_add( 1, std::memory_order_relaxed ); } +void Profiler::ZoneBegin( QueueZoneBegin&& data ) +{ + QueueItem item { QueueType::ZoneBegin, GetTime() }; + item.zoneBegin = std::move( data ); + s_instance->m_queue.enqueue( std::move( item ) ); +} + +void Profiler::ZoneEnd( QueueZoneEnd&& data ) +{ + QueueItem item { QueueType::ZoneEnd, GetTime() }; + item.zoneEnd = std::move( data ); + s_instance->m_queue.enqueue( std::move( item ) ); +} + void Profiler::Worker() { for(;;) diff --git a/client/TracyProfiler.hpp b/client/TracyProfiler.hpp index d9ede1f7..25268671 100755 --- a/client/TracyProfiler.hpp +++ b/client/TracyProfiler.hpp @@ -5,6 +5,9 @@ #include #include +#include "concurrentqueue.h" +#include "TracyQueue.hpp" + namespace tracy { @@ -16,11 +19,15 @@ public: static uint64_t GetNewId(); + static void ZoneBegin( QueueZoneBegin&& data ); + static void ZoneEnd( QueueZoneEnd&& data ); + private: void Worker(); std::thread m_thread; std::atomic m_shutdown; + moodycamel::ConcurrentQueue m_queue; std::atomic m_id; };