| Index: tools/telemetry/telemetry/core/timeline/event.py
|
| diff --git a/tools/telemetry/telemetry/core/timeline/event.py b/tools/telemetry/telemetry/core/timeline/event.py
|
| index 8b9db4cef72e082401be71fb0bf9ab3f32b591b9..916d540eabe8d2bdab06a28ef2d762c0ae71e980 100644
|
| --- a/tools/telemetry/telemetry/core/timeline/event.py
|
| +++ b/tools/telemetry/telemetry/core/timeline/event.py
|
| @@ -3,26 +3,50 @@
|
| # found in the LICENSE file.
|
|
|
| class TimelineEvent(object):
|
| - """Represents a timeline event."""
|
| - def __init__(self, category, name, start, duration, args=None):
|
| + """Represents a timeline event.
|
| +
|
| + thread_start, thread_duration and thread_end are the start time, duration
|
| + and end time of this event as measured by the thread-specific CPU clock
|
| + (ticking when the thread is actually scheduled). Thread time is optional
|
| + on trace events and the corresponding attributes in TimelineEvent will be
|
| + set to None (not 0) if not present. Users of this class need to properly
|
| + handle this case.
|
| + """
|
| + def __init__(self, category, name, start, duration, thread_start=None,
|
| + thread_duration=None, args=None):
|
| self.category = category
|
| self.name = name
|
| self.start = start
|
| self.duration = duration
|
| + self.thread_start = thread_start
|
| + self.thread_duration = thread_duration
|
| self.args = args
|
|
|
| @property
|
| def end(self):
|
| return self.start + self.duration
|
|
|
| + @property
|
| + def thread_end(self):
|
| + """Thread-specific CPU time when this event ended.
|
| +
|
| + May be None if the trace event didn't have thread time data.
|
| + """
|
| + if self.thread_start == None or self.thread_duration == None:
|
| + return None
|
| + return self.thread_start + self.thread_duration
|
| +
|
| def __repr__(self):
|
| if self.args:
|
| args_str = ', ' + repr(self.args)
|
| else:
|
| args_str = ''
|
|
|
| - return "TimelineEvent(name='%s', start=%f, duration=%s%s)" % (
|
| - self.name,
|
| - self.start,
|
| - self.duration,
|
| - args_str)
|
| + return ("TimelineEvent(name='%s', start=%f, duration=%s, " +
|
| + "thread_start=%s, thread_duration=%s%s)") % (
|
| + self.name,
|
| + self.start,
|
| + self.duration,
|
| + self.thread_start,
|
| + self.thread_duration,
|
| + args_str)
|
|
|