lib/third_party/tracing/model/thread.js
function Thread(parent, tid) {
    if (!parent)
      throw new Error('Parent must be provided.');

    tr.model.EventContainer.call(this);
    this.parent = parent;
    this.sortIndex = 0;
    this.tid = tid;
    this.name = undefined;
    this.samples_ = undefined; // Set during createSubSlices

    var that = this;

    this.sliceGroup = new SliceGroup(this, ThreadSlice, 'slices');
    this.timeSlices = undefined;
    this.kernelSliceGroup = new SliceGroup(
        this, ThreadSlice, 'kernel-slices');
    this.asyncSliceGroup = new AsyncSliceGroup(this, 'async-slices');
  }
function Thread(parent, tid) {
    if (!parent)
      throw new Error('Parent must be provided.');

    tr.model.EventContainer.call(this);
    this.parent = parent;
    this.sortIndex = 0;
    this.tid = tid;
    this.name = undefined;
    this.samples_ = undefined; // Set during createSubSlices

    var that = this;

    this.sliceGroup = new SliceGroup(this, ThreadSlice, 'slices');
    this.timeSlices = undefined;
    this.kernelSliceGroup = new SliceGroup(
        this, ThreadSlice, 'kernel-slices');
    this.asyncSliceGroup = new AsyncSliceGroup(this, 'async-slices');
  }
function Thread ( parent , tid ) { if ( ! parent ) throw new Error ( 'Parent must be provided.' ) ; tr . model . EventContainer . call ( this ) ; this . parent = parent ; this . sortIndex = 0 ; this . tid = tid ; this . name = undefined ; this . samples_ = undefined ; // Set during createSubSlices var that = this ; this . sliceGroup = new SliceGroup ( this , ThreadSlice , 'slices' ) ; this . timeSlices = undefined ; this . kernelSliceGroup = new SliceGroup ( this , ThreadSlice , 'kernel-slices' ) ; this . asyncSliceGroup = new AsyncSliceGroup ( this , 'async-slices' ) ; }
A Thread stores all the trace events collected for a particular
thread. We organize the synchronous slices on a thread by "subrows," where
subrow 0 has all the root slices, subrow 1 those nested 1 deep, and so on.
The asynchronous slices are stored in an AsyncSliceGroup object.

The slices stored on a Thread should be instances of
ThreadSlice.

@constructor
@extends {tr.model.EventContainer}
A Thread stores all the trace events collected for a particular thread . We organize the synchronous slices on a thread by subrows where subrow 0 has all the root slices subrow 1 those nested 1 deep and so on . The asynchronous slices are stored in an AsyncSliceGroup object .