diff options
Diffstat (limited to 'deps/v8/src/tracing/tracing-category-observer.cc')
-rw-r--r-- | deps/v8/src/tracing/tracing-category-observer.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/deps/v8/src/tracing/tracing-category-observer.cc b/deps/v8/src/tracing/tracing-category-observer.cc index 3debacb548..feee3807c6 100644 --- a/deps/v8/src/tracing/tracing-category-observer.cc +++ b/deps/v8/src/tracing/tracing-category-observer.cc @@ -16,17 +16,32 @@ TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr; void TracingCategoryObserver::SetUp() { TracingCategoryObserver::instance_ = new TracingCategoryObserver(); +#if defined(V8_USE_PERFETTO) + TrackEvent::AddSessionObserver(instance_); + // Fire the observer if tracing is already in progress. + if (TrackEvent::IsEnabled()) instance_->OnStart({}); +#else i::V8::GetCurrentPlatform()->GetTracingController()->AddTraceStateObserver( TracingCategoryObserver::instance_); +#endif } void TracingCategoryObserver::TearDown() { +#if defined(V8_USE_PERFETTO) + TrackEvent::RemoveSessionObserver(TracingCategoryObserver::instance_); +#else i::V8::GetCurrentPlatform()->GetTracingController()->RemoveTraceStateObserver( TracingCategoryObserver::instance_); +#endif delete TracingCategoryObserver::instance_; } +#if defined(V8_USE_PERFETTO) +void TracingCategoryObserver::OnStart( + const perfetto::DataSourceBase::StartArgs&) { +#else void TracingCategoryObserver::OnTraceEnabled() { +#endif bool enabled = false; TRACE_EVENT_CATEGORY_GROUP_ENABLED( TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"), &enabled); @@ -66,7 +81,12 @@ void TracingCategoryObserver::OnTraceEnabled() { } } +#if defined(V8_USE_PERFETTO) +void TracingCategoryObserver::OnStop( + const perfetto::DataSourceBase::StopArgs&) { +#else void TracingCategoryObserver::OnTraceDisabled() { +#endif i::TracingFlags::runtime_stats.fetch_and( ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING), std::memory_order_relaxed); |