mirror of https://github.com/sbt/sbt.git
Merge pull request #5692 from eatkins/task-progress
Clear singleton TaskProgress between runs
This commit is contained in:
commit
23ade8c650
|
|
@ -42,7 +42,10 @@ private[sbt] abstract class AbstractTaskExecuteProgress extends ExecuteProgress[
|
|||
}
|
||||
|
||||
override def afterWork[A](task: Task[A], result: Either[Task[A], Result[A]]): Unit = {
|
||||
timings.get(task).stop()
|
||||
timings.get(task) match {
|
||||
case null =>
|
||||
case t => t.stop()
|
||||
}
|
||||
activeTasksMap.remove(task)
|
||||
|
||||
// we need this to infer anonymous task names
|
||||
|
|
@ -51,6 +54,11 @@ private[sbt] abstract class AbstractTaskExecuteProgress extends ExecuteProgress[
|
|||
}
|
||||
}
|
||||
|
||||
protected def reset(): Unit = {
|
||||
activeTasksMap.clear()
|
||||
timings.clear()
|
||||
}
|
||||
|
||||
private[this] val taskNameCache = TrieMap.empty[Task[_], String]
|
||||
protected def taskName(t: Task[_]): String =
|
||||
taskNameCache.getOrElseUpdate(t, taskName0(t))
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ private[sbt] class TaskProgress private ()
|
|||
}
|
||||
|
||||
override def afterAllCompleted(results: RMap[Task, Result]): Unit = {
|
||||
reset()
|
||||
// send an empty progress report to clear out the previous report
|
||||
appendProgress(ProgressEvent("Info", Vector(), Some(lastTaskCount.get), None, None))
|
||||
}
|
||||
|
|
@ -132,8 +133,12 @@ private[sbt] class TaskProgress private ()
|
|||
StandardMain.exchange.updateProgress(event)
|
||||
private[this] def active: Vector[Task[_]] = activeTasks.toVector.filterNot(Def.isDummy)
|
||||
private[this] def activeExceedingThreshold: Vector[(Task[_], Long)] = active.flatMap { task =>
|
||||
val elapsed = timings.get(task).currentElapsedMicros
|
||||
if (elapsed.micros > threshold) Some[(Task[_], Long)](task -> elapsed) else None
|
||||
timings.get(task) match {
|
||||
case null => None
|
||||
case t =>
|
||||
val elapsed = t.currentElapsedMicros
|
||||
if (elapsed.micros > threshold) Some[(Task[_], Long)](task -> elapsed) else None
|
||||
}
|
||||
}
|
||||
private[this] def report(): Unit = {
|
||||
val currentTasks = activeExceedingThreshold
|
||||
|
|
|
|||
Loading…
Reference in New Issue