Skip to content

Commit a2a7373

Browse files
hoxyqfacebook-github-bot
authored andcommitted
fix: use ThreadId when event is captured, not when transformed (#53411)
Summary: Pull Request resolved: #53411 # Changelog: [Internal] This regressed after D80263154, when we introduced a local struct for PerforamanceTracerEvent. We should use id of the thread where event was captured (registered), not where the transform to TraceEvent happened. This makes sure that events like Event Loop tick or Microtasks phase tick are correctly point to JavaScript thread, not the thread where the transform could've taken place. Reviewed By: sbuggay Differential Revision: D80728931 fbshipit-source-id: d3af16e68adece9ebc37368fec2b8a17c1293b4b
1 parent 046ff8e commit a2a7373

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

packages/react-native/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ void PerformanceTracer::reportTimeStamp(
190190
.trackName = std::move(trackName),
191191
.trackGroup = std::move(trackGroup),
192192
.color = std::move(color),
193+
.threadId = getCurrentThreadId(),
193194
});
194195
}
195196

@@ -399,7 +400,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
399400
.ph = 'X',
400401
.ts = event.start,
401402
.pid = processId_,
402-
.tid = getCurrentThreadId(),
403+
.tid = event.threadId,
403404
.dur = event.end - event.start,
404405
});
405406
},
@@ -410,7 +411,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
410411
.ph = 'X',
411412
.ts = event.start,
412413
.pid = processId_,
413-
.tid = getCurrentThreadId(),
414+
.tid = event.threadId,
414415
.dur = event.end - event.start,
415416
});
416417
},
@@ -429,7 +430,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
429430
.ph = 'I',
430431
.ts = event.start,
431432
.pid = processId_,
432-
.tid = getCurrentThreadId(),
433+
.tid = event.threadId,
433434
.args = std::move(eventArgs),
434435
});
435436
},
@@ -449,7 +450,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
449450
.ph = 'b',
450451
.ts = event.start,
451452
.pid = processId_,
452-
.tid = getCurrentThreadId(),
453+
.tid = event.threadId,
453454
.args = std::move(beginEventArgs),
454455
});
455456
events.emplace_back(TraceEvent{
@@ -459,7 +460,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
459460
.ph = 'e',
460461
.ts = event.start + event.duration,
461462
.pid = processId_,
462-
.tid = getCurrentThreadId(),
463+
.tid = event.threadId,
463464
});
464465
},
465466
[&](PerformanceTracerEventTimeStamp&& event) {
@@ -500,7 +501,7 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
500501
.ph = 'I',
501502
.ts = event.createdAt,
502503
.pid = processId_,
503-
.tid = getCurrentThreadId(),
504+
.tid = event.threadId,
504505
.args = folly::dynamic::object("data", std::move(data)),
505506
});
506507
},

0 commit comments

Comments
 (0)