Chromium Code Reviews| Index: base/tracking_info.h |
| diff --git a/base/tracking_info.h b/base/tracking_info.h |
| index dacbcea1d2b9d83a4734b5c5b21216f4cac004f7..58b33dea33d0558aec0714bd9a82d7e327e50545 100644 |
| --- a/base/tracking_info.h |
| +++ b/base/tracking_info.h |
| @@ -11,6 +11,7 @@ |
| #ifndef BASE_TRACKING_INFO_H_ |
| #define BASE_TRACKING_INFO_H_ |
| +#include "base/profiler/tracked_time.h" |
| #include "base/time/time.h" |
| namespace tracked_objects { |
| @@ -27,6 +28,21 @@ struct BASE_EXPORT TrackingInfo { |
| base::TimeTicks delayed_run_time); |
| ~TrackingInfo(); |
| + // To avoid conflating our stats with the delay duration in a PostDelayedTask, |
| + // we identify such tasks, and replace their post_time with the time they |
| + // were scheduled (requested?) to emerge from the delayed task queue. This |
| + // means that queuing delay for such tasks will show how long they went |
| + // unserviced, after they *could* be serviced. This is the same stat as we |
| + // have for non-delayed tasks, and we consistently call it queuing delay. |
| + TimeTicks EffectiveTimePosted() const { |
| + return delayed_run_time.is_null() ? time_posted : delayed_run_time; |
| + } |
| + |
| + tracked_objects::Duration DurationSinceEffectiveTimePosted() const { |
| + return tracked_objects::TrackedTime::Now() - |
| + tracked_objects::TrackedTime(EffectiveTimePosted()); |
|
jar (doing other things)
2013/07/08 23:14:19
Now that you're always converting to TrackedTime()
|
| + } |
| + |
| // Record of location and thread that the task came from. |
| tracked_objects::Births* birth_tally; |