Index: base/threading/worker_pool_win.cc |
diff --git a/base/threading/worker_pool_win.cc b/base/threading/worker_pool_win.cc |
index 8dd323b5b1ffb96f9e7f0c9a8f689394eccb1172..c698760e5bd7b9940fb3fa530bb7c38a9a8f85bd 100644 |
--- a/base/threading/worker_pool_win.cc |
+++ b/base/threading/worker_pool_win.cc |
@@ -25,17 +25,20 @@ DWORD CALLBACK WorkItemCallback(void* param) { |
"src_file", pending_task->posted_from.file_name(), |
"src_func", pending_task->posted_from.function_name()); |
- tracked_objects::TrackedTime start_time = |
- tracked_objects::ThreadData::NowForStartOfRun(pending_task->birth_tally); |
+ tracked_objects::TaskStopwatch stopwatch; |
+ stopwatch.Start( |
+ tracked_objects::ThreadData::NowForStartOfRun(pending_task->birth_tally)); |
g_worker_pool_running_on_this_thread.Get().Set(true); |
pending_task->task.Run(); |
g_worker_pool_running_on_this_thread.Get().Set(false); |
+ stopwatch.Stop(tracked_objects::ThreadData::NowForEndOfRun()); |
+ |
tracked_objects::ThreadData::TallyRunOnWorkerThreadIfTracking( |
pending_task->birth_tally, |
- tracked_objects::TrackedTime(pending_task->time_posted), start_time, |
- tracked_objects::ThreadData::NowForEndOfRun()); |
+ tracked_objects::TrackedTime(pending_task->time_posted), |
+ stopwatch); |
delete pending_task; |
return 0; |