Packages

sealed abstract class InPhase extends AnyRef

A wrapper to allow actions to be associated to a Phase. This aids profiling, particularly where a actions occur in multiple threads, or out of order

When you are running a compilation task that involved some activity on a background thread (not the one running Global.compileUnits) the profiler is not aware of that thread and so cannot account for the activity.

By wrapping the activity in this class or one of it children the profiler (if enabled) is informed and the statistics can be gathered

No InPhase should run concurrently with another InPhase on the same thread - the statistics dont cope with nesting

Source
InPhase.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InPhase
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. val comment: String
  2. def idle(future: Future[_], duration: Duration = Duration.Inf): Unit

    If the compilation activity has some idle time waiting on a future, then this can be recorded by using this method to perform the wait for you.

    If the compilation activity has some idle time waiting on a future, then this can be recorded by using this method to perform the wait for you. This allow the profiler to distinguish idle time (waiting for some related activity to complete), from for example waiting on I/O

    future

    the future that you are waiting on

    duration

    the maximum duration to wait

  3. val phase: Phase