Index: base/threading/worker_pool_win.cc |
diff --git a/base/threading/worker_pool_win.cc b/base/threading/worker_pool_win.cc |
index fa11dc5a7636d49d7d98f8c982493b253dfad28c..8fc732420dd88428f5ca51f46fb920e7c98bfff8 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::ThreadData::PrepareForStartOfRun(pending_task->birth_tally); |
g_worker_pool_running_on_this_thread.Get().Set(true); |
+ |
+ tracked_objects::TaskStopwatch stopwatch; |
pending_task->task.Run(); |
+ stopwatch.Stop(); |
+ |
g_worker_pool_running_on_this_thread.Get().Set(false); |
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; |