OLD | NEW |
| (Empty) |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import telemetry.timeline.event as event | |
6 | |
7 | |
8 class AsyncSlice(event.TimelineEvent): | |
9 """An AsyncSlice represents an interval of time during which an | |
10 asynchronous operation is in progress. An AsyncSlice consumes no CPU time | |
11 itself and so is only associated with Threads at its start and end point. | |
12 """ | |
13 def __init__(self, category, name, timestamp, args=None, | |
14 duration=0, start_thread=None, end_thread=None, | |
15 thread_start=None, thread_duration=None): | |
16 super(AsyncSlice, self).__init__( | |
17 category, name, timestamp, duration, thread_start, thread_duration, | |
18 args) | |
19 self.parent_slice = None | |
20 self.start_thread = start_thread | |
21 self.end_thread = end_thread | |
22 self.sub_slices = [] | |
23 self.id = None | |
24 | |
25 def AddSubSlice(self, sub_slice): | |
26 assert sub_slice.parent_slice == self | |
27 self.sub_slices.append(sub_slice) | |
28 | |
29 def IterEventsInThisContainerRecrusively(self): | |
30 for sub_slice in self.sub_slices: | |
31 yield sub_slice | |
OLD | NEW |