diff options
Diffstat (limited to 'base/tracked_objects.cc')
-rw-r--r-- | base/tracked_objects.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/base/tracked_objects.cc b/base/tracked_objects.cc index 2885eb0..5403af58 100644 --- a/base/tracked_objects.cc +++ b/base/tracked_objects.cc @@ -509,6 +509,31 @@ void ThreadData::TallyRunOnWorkerThreadIfTracking( } // static +void ThreadData::TallyRunInAScopedRegionIfTracking( + const Births* birth, + const TrackedTime& start_of_run, + const TrackedTime& end_of_run) { + if (!kTrackAllTaskObjects) + return; // Not compiled in. + + // Even if we have been DEACTIVATED, we will process any pending births so + // that our data structures (which counted the outstanding births) remain + // consistent. + if (!birth) + return; + + ThreadData* current_thread_data = Get(); + if (!current_thread_data) + return; + + Duration queue_duration = Duration(); + Duration run_duration = end_of_run - start_of_run; + current_thread_data->TallyADeath(*birth, queue_duration, run_duration); +} + + + +// static ThreadData* ThreadData::first() { base::AutoLock lock(*list_lock_); return all_thread_data_list_head_; |