Index: tools/telemetry/telemetry/core/timeline/thread.py |
diff --git a/tools/telemetry/telemetry/core/timeline/thread.py b/tools/telemetry/telemetry/core/timeline/thread.py |
index 3b76397ed8bd97fee1619f70cb2c51d8d89c7b74..f0762c8e202ab61a31c2ddf24fa96df8a38be2a9 100644 |
--- a/tools/telemetry/telemetry/core/timeline/thread.py |
+++ b/tools/telemetry/telemetry/core/timeline/thread.py |
@@ -54,11 +54,23 @@ class Thread(event_container.TimelineEventContainer): |
for sub_slice in s.IterEventsInThisContainerRecrusively(): |
yield sub_slice |
- def IterAllSlicesInRange(self, start, end): |
+ def IterAllSlicesInTimeRange(self, start, end): |
+ """ Returns all slices with time ranges within start and end, inclusive. """ |
for s in self.IterAllSlices(): |
if s.start >= start and s.end <= end: |
yield s |
+ def IterAllSlicesOverlappedWithThreadTimeRange(self, thread_start, |
+ thread_end): |
+ """ Returns all slices whose thread time ranges overlap with the range |
+ (thread_start, thread_end). |
+ """ |
+ for s in self.IterAllSlices(): |
+ |
+ if (s.HasThreadTimeData() and s.thread_end > thread_start and |
+ s.thread_start < thread_end): |
+ yield s |
+ |
def IterAllSlicesOfName(self, name): |
for s in self.IterAllSlices(): |
if s.name == name: |