| Index: base/debug/trace_event_impl.cc
|
| diff --git a/base/debug/trace_event_impl.cc b/base/debug/trace_event_impl.cc
|
| index 5c521d462fe0e73c766d801f1b4340ad2d82670f..5341ba3a1867861cb444cd0009fa6dfea0d49f64 100644
|
| --- a/base/debug/trace_event_impl.cc
|
| +++ b/base/debug/trace_event_impl.cc
|
| @@ -1533,6 +1533,19 @@ void TraceLog::SetDisabledWhileLocked() {
|
| return;
|
| }
|
|
|
| + dispatching_to_observer_list_ = true;
|
| + std::vector<EnabledStateObserver*> observer_list =
|
| + enabled_state_observer_list_;
|
| +
|
| + {
|
| + // Dispatch to observers outside the lock in case the observer triggers a
|
| + // trace event.
|
| + AutoUnlock unlock(lock_);
|
| + for (size_t i = 0; i < observer_list.size(); ++i)
|
| + observer_list[i]->OnBeforeTraceLogDisabled();
|
| + }
|
| + dispatching_to_observer_list_ = false;
|
| +
|
| mode_ = DISABLED;
|
|
|
| if (sampling_thread_.get()) {
|
| @@ -1552,9 +1565,6 @@ void TraceLog::SetDisabledWhileLocked() {
|
| AddMetadataEventsWhileLocked();
|
|
|
| dispatching_to_observer_list_ = true;
|
| - std::vector<EnabledStateObserver*> observer_list =
|
| - enabled_state_observer_list_;
|
| -
|
| {
|
| // Dispatch to observers outside the lock in case the observer triggers a
|
| // trace event.
|
|
|