summaryrefslogtreecommitdiffstats
path: root/mojo/services/tracing/public/cpp/trace_provider_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/services/tracing/public/cpp/trace_provider_impl.cc')
-rw-r--r--mojo/services/tracing/public/cpp/trace_provider_impl.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/mojo/services/tracing/public/cpp/trace_provider_impl.cc b/mojo/services/tracing/public/cpp/trace_provider_impl.cc
index 12842e5..ea6c8f4 100644
--- a/mojo/services/tracing/public/cpp/trace_provider_impl.cc
+++ b/mojo/services/tracing/public/cpp/trace_provider_impl.cc
@@ -19,7 +19,9 @@ namespace mojo {
TraceProviderImpl::TraceProviderImpl()
: binding_(this), tracing_forced_(false), weak_factory_(this) {}
-TraceProviderImpl::~TraceProviderImpl() {}
+TraceProviderImpl::~TraceProviderImpl() {
+ StopTracing();
+}
void TraceProviderImpl::Bind(InterfaceRequest<tracing::TraceProvider> request) {
if (!binding_.is_bound()) {
@@ -44,11 +46,12 @@ void TraceProviderImpl::StartTracing(const String& categories,
}
void TraceProviderImpl::StopTracing() {
- DCHECK(recorder_);
- base::trace_event::TraceLog::GetInstance()->SetDisabled();
+ if (recorder_) {
+ base::trace_event::TraceLog::GetInstance()->SetDisabled();
- base::trace_event::TraceLog::GetInstance()->Flush(
- base::Bind(&TraceProviderImpl::SendChunk, base::Unretained(this)));
+ base::trace_event::TraceLog::GetInstance()->Flush(
+ base::Bind(&TraceProviderImpl::SendChunk, base::Unretained(this)));
+ }
}
void TraceProviderImpl::ForceEnableTracing() {