Skip to content

Commit 2c540ac

Browse files
hoxyqfacebook-github-bot
authored andcommitted
Add a method for transfering an ownership of captured TraceEvents (#52940)
Summary: Pull Request resolved: #52940 # Changelog: [Internal] This is required for storing these Trace Events somewhere outside of PerformanceTracer, in case these events will be dispatched later. Reviewed By: rubennorte Differential Revision: D78741192 fbshipit-source-id: 3cc2eacd922855231fafb93c32d326b150b3c19b
1 parent b58c2ff commit 2c540ac

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,15 @@ folly::dynamic PerformanceTracer::collectEvents(uint16_t chunkSize) {
131131
return chunks;
132132
}
133133

134+
std::vector<TraceEvent> PerformanceTracer::collectTraceEvents() {
135+
std::vector<TraceEvent> events;
136+
{
137+
std::lock_guard lock(mutex_);
138+
buffer_.swap(events);
139+
}
140+
return events;
141+
}
142+
134143
void PerformanceTracer::reportMark(
135144
const std::string_view& name,
136145
HighResTimeStamp start,

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ class PerformanceTracer {
6565
*/
6666
folly::dynamic collectEvents(uint16_t chunkSize);
6767

68+
/**
69+
* Transfers an ownership of all buffered TraceEvents, the local buffer state
70+
* is invalidated after this call.
71+
*/
72+
std::vector<TraceEvent> collectTraceEvents();
73+
6874
/**
6975
* Record a `Performance.mark()` event - a labelled timestamp. If not
7076
* currently tracing, this is a no-op.

0 commit comments

Comments
 (0)