| Index: base/debug/trace_event_impl.cc
|
| diff --git a/base/debug/trace_event_impl.cc b/base/debug/trace_event_impl.cc
|
| index 860d989489488b8407292b3ba9169926e39e7463..38a6c0fe311df6ae92f716559d939b19d318de28 100644
|
| --- a/base/debug/trace_event_impl.cc
|
| +++ b/base/debug/trace_event_impl.cc
|
| @@ -1000,12 +1000,14 @@ void TraceLog::AddTraceEventWithThreadIdAndTimestamp(
|
|
|
| NotificationHelper notifier(this);
|
|
|
| - {
|
| + do {
|
| AutoLock lock(lock_);
|
| if (*category_group_enabled != CATEGORY_ENABLED)
|
| return;
|
| +
|
| + event_callback_copy = event_callback_;
|
| if (logged_events_->IsFull())
|
| - return;
|
| + break;
|
|
|
| const char* new_name = ThreadIdNameManager::GetInstance()->
|
| GetName(thread_id);
|
| @@ -1047,9 +1049,7 @@ void TraceLog::AddTraceEventWithThreadIdAndTimestamp(
|
|
|
| if (watch_category_ == category_group_enabled && watch_event_name_ == name)
|
| notifier.AddNotificationWhileLocked(EVENT_WATCH_NOTIFICATION);
|
| -
|
| - event_callback_copy = event_callback_;
|
| - } // release lock
|
| + } while (0); // release lock
|
|
|
| notifier.SendNotificationIfAny();
|
| if (event_callback_copy != NULL) {
|
|
|