diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 039637a8..53842e85 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -4958,6 +4958,16 @@ void Worker::FrameImageTwiceFailure() m_failure = Failure::FrameImageTwice; } +void Worker::FiberEnterFailure() +{ + m_failure = Failure::FiberEnter; +} + +void Worker::FiberLeaveFailure() +{ + m_failure = Failure::FiberLeave; +} + void Worker::ProcessZoneValidation( const QueueZoneValidation& ev ) { auto td = m_threadCtxData; @@ -8006,6 +8016,8 @@ static const char* s_failureReasons[] = { "Discontinuous frame begin/end mismatch.", "Frame image offset is invalid.", "Multiple frame images were sent for a single frame.", + "Fiber execution started on a thread which is already executing a fiber.", + "Fiber execution stopped on a thread which is not executing a fiber.", }; static_assert( sizeof( s_failureReasons ) / sizeof( *s_failureReasons ) == (int)Worker::Failure::NUM_FAILURES, "Missing failure reason description." ); diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index e4532710..8e39db17 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -405,6 +405,8 @@ public: FrameEnd, FrameImageIndex, FrameImageTwice, + FiberEnter, + FiberLeave, NUM_FAILURES }; @@ -725,6 +727,8 @@ private: void FrameEndFailure(); void FrameImageIndexFailure(); void FrameImageTwiceFailure(); + void FiberEnterFailure(); + void FiberLeaveFailure(); tracy_force_inline void CheckSourceLocation( uint64_t ptr ); void NewSourceLocation( uint64_t ptr );