summaryrefslogtreecommitdiffstats
path: root/base/threading/worker_pool_win.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/threading/worker_pool_win.cc')
-rw-r--r--base/threading/worker_pool_win.cc24
1 files changed, 15 insertions, 9 deletions
diff --git a/base/threading/worker_pool_win.cc b/base/threading/worker_pool_win.cc
index b73cabd..0cd3d96 100644
--- a/base/threading/worker_pool_win.cc
+++ b/base/threading/worker_pool_win.cc
@@ -20,15 +20,19 @@ struct PendingTask {
const base::Closure& task)
: posted_from(posted_from),
task(task) {
- birth_tally = tracked_objects::ThreadData::TallyABirthIfActive(posted_from);
+#if defined(TRACK_ALL_TASK_OBJECTS)
+ post_births = tracked_objects::ThreadData::TallyABirthIfActive(posted_from);
time_posted = tracked_objects::ThreadData::Now();
+#endif // defined(TRACK_ALL_TASK_OBJECTS)
}
+#if defined(TRACK_ALL_TASK_OBJECTS)
// Counter for location where the Closure was posted from.
- tracked_objects::Births* birth_tally;
+ tracked_objects::Births* post_births;
// Time the task was posted.
- tracked_objects::TrackedTime time_posted;
+ TimeTicks time_posted;
+#endif // defined(TRACK_ALL_TASK_OBJECTS)
// The site this PendingTask was posted from.
tracked_objects::Location posted_from;
@@ -43,13 +47,15 @@ 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::Now();
-
+#if defined(TRACK_ALL_TASK_OBJECTS)
+ TimeTicks start_of_run = tracked_objects::ThreadData::Now();
+#endif // defined(TRACK_ALL_TASK_OBJECTS)
pending_task->task.Run();
-
- tracked_objects::ThreadData::TallyRunOnWorkerThreadIfTracking(
- pending_task->birth_tally, pending_task->time_posted,
- start_time, tracked_objects::ThreadData::Now());
+#if defined(TRACK_ALL_TASK_OBJECTS)
+ tracked_objects::ThreadData::TallyADeathIfActive(pending_task->post_births,
+ pending_task->time_posted, TimeTicks::TimeTicks(), start_of_run,
+ tracked_objects::ThreadData::Now());
+#endif // defined(TRACK_ALL_TASK_OBJECTS)
delete pending_task;
return 0;