1
0
mirror of https://github.com/wolfpld/tracy synced 2025-05-02 13:43:52 +00:00

Allow direct switching from one fiber to another.

This commit is contained in:
Bartosz Taudul 2021-11-04 17:51:32 +01:00
parent 5782d8a53b
commit 4c774130ee
No known key found for this signature in database
GPG Key ID: B7FE2008B7575DF3
2 changed files with 3 additions and 10 deletions

View File

@ -5019,11 +5019,6 @@ void Worker::FrameImageTwiceFailure()
m_failure = Failure::FrameImageTwice; m_failure = Failure::FrameImageTwice;
} }
void Worker::FiberEnterFailure()
{
m_failure = Failure::FiberEnter;
}
void Worker::FiberLeaveFailure() void Worker::FiberLeaveFailure()
{ {
m_failure = Failure::FiberLeave; m_failure = Failure::FiberLeave;
@ -6763,9 +6758,10 @@ void Worker::ProcessFiberEnter( const QueueFiberEnter& ev )
tid = it->second; tid = it->second;
} }
if( m_data.threadToFiberMap.find( ev.thread ) != m_data.threadToFiberMap.end() ) auto tit = m_data.threadToFiberMap.find( ev.thread );
if( tit != m_data.threadToFiberMap.end() )
{ {
FiberEnterFailure(); tit->second = tid;
} }
else else
{ {
@ -8132,7 +8128,6 @@ static const char* s_failureReasons[] = {
"Discontinuous frame begin/end mismatch.", "Discontinuous frame begin/end mismatch.",
"Frame image offset is invalid.", "Frame image offset is invalid.",
"Multiple frame images were sent for a single frame.", "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.", "Fiber execution stopped on a thread which is not executing a fiber.",
}; };

View File

@ -408,7 +408,6 @@ public:
FrameEnd, FrameEnd,
FrameImageIndex, FrameImageIndex,
FrameImageTwice, FrameImageTwice,
FiberEnter,
FiberLeave, FiberLeave,
NUM_FAILURES NUM_FAILURES
@ -732,7 +731,6 @@ private:
void FrameEndFailure(); void FrameEndFailure();
void FrameImageIndexFailure(); void FrameImageIndexFailure();
void FrameImageTwiceFailure(); void FrameImageTwiceFailure();
void FiberEnterFailure();
void FiberLeaveFailure(); void FiberLeaveFailure();
tracy_force_inline void CheckSourceLocation( uint64_t ptr ); tracy_force_inline void CheckSourceLocation( uint64_t ptr );