summaryrefslogtreecommitdiffstats
path: root/base/tracking_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'base/tracking_info.h')
-rw-r--r--base/tracking_info.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/base/tracking_info.h b/base/tracking_info.h
index dacbcea..ba9585e 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,17 @@ 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.
+ tracked_objects::TrackedTime EffectiveTimePosted() const {
+ return tracked_objects::TrackedTime(
+ delayed_run_time.is_null() ? time_posted : delayed_run_time);
+ }
+
// Record of location and thread that the task came from.
tracked_objects::Births* birth_tally;