1 # Copyright 2013 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.
5 import telemetry.core.timeline.event as event
7 class AsyncSlice(event.TimelineEvent):
8 ''' A AsyncSlice represents an interval of time during which an
9 asynchronous operation is in progress. An AsyncSlice consumes no CPU time
10 itself and so is only associated with Threads at its start and end point.
12 def __init__(self, category, name, timestamp, args=None):
13 super(AsyncSlice, self).__init__(
14 category, name, timestamp, duration=0, args=args)
15 self.parent_slice = None
16 self.start_thread = None
17 self.end_thread = None
21 def AddSubSlice(self, sub_slice):
22 assert sub_slice.parent_slice == self
23 self.sub_slices.append(sub_slice)
26 def IterEventsInThisContainerRecrusively(self):
27 for sub_slice in self.sub_slices: