| Index: base/message_loop/message_loop.cc
|
| diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
|
| index dd1a393ab08633514df9d6d021a1be7ff4dbd23f..f39b05088e5a1cfb45684eaa63b9726cd8fe1d7a 100644
|
| --- a/base/message_loop/message_loop.cc
|
| +++ b/base/message_loop/message_loop.cc
|
| @@ -415,13 +415,14 @@ bool MessageLoop::ProcessNextDelayedNonNestableTask() {
|
| }
|
|
|
| void MessageLoop::RunTask(const PendingTask& pending_task) {
|
| - tracked_objects::TrackedTime start_time =
|
| - tracked_objects::ThreadData::NowForStartOfRun(pending_task.birth_tally);
|
| + tracked_objects::ThreadData::PrepareForStartOfRun(pending_task.birth_tally);
|
| + tracked_objects::TaskStopwatch stopwatch;
|
|
|
| TRACE_EVENT_FLOW_END1(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
| "MessageLoop::PostTask", TRACE_ID_MANGLE(GetTaskTraceID(pending_task)),
|
| "queue_duration",
|
| - (start_time - pending_task.EffectiveTimePosted()).InMilliseconds());
|
| + (stopwatch.StartTime() - pending_task.EffectiveTimePosted()).
|
| + InMilliseconds());
|
| // When tracing memory for posted tasks it's more valuable to attribute the
|
| // memory allocations to the source function than generically to "RunTask".
|
| TRACE_EVENT_WITH_MEMORY_TAG2(
|
| @@ -451,8 +452,9 @@ void MessageLoop::RunTask(const PendingTask& pending_task) {
|
| FOR_EACH_OBSERVER(TaskObserver, task_observers_,
|
| DidProcessTask(pending_task));
|
|
|
| - tracked_objects::ThreadData::TallyRunOnNamedThreadIfTracking(pending_task,
|
| - start_time, tracked_objects::ThreadData::NowForEndOfRun());
|
| + stopwatch.Stop();
|
| + tracked_objects::ThreadData::TallyRunOnNamedThreadIfTracking(
|
| + pending_task, stopwatch);
|
|
|
| nestable_tasks_allowed_ = true;
|
| }
|
|
|