Merge pull request #5889 from eatkins/supershell-perf-regression-fix

Fix minor supershell performance regression
This commit is contained in:
eugene yokota 2020-09-25 14:13:12 -04:00 committed by GitHub
commit 71677cedca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 6 deletions

View File

@ -48,8 +48,9 @@ private[sbt] class TaskProgress(
val delay = duration.toMillis
try {
val future =
if (recurring) scheduler.schedule(runnable, delay, TimeUnit.MILLISECONDS)
else scheduler.scheduleAtFixedRate(runnable, delay, delay, TimeUnit.MILLISECONDS)
if (recurring)
scheduler.scheduleAtFixedRate(runnable, delay, delay, TimeUnit.MILLISECONDS)
else scheduler.schedule(runnable, delay, TimeUnit.MILLISECONDS)
pending.add(future)
() => Util.ignoreResult(future.cancel(true))
} catch {
@ -106,10 +107,15 @@ private[sbt] class TaskProgress(
override def afterReady(task: Task[_]): Unit =
if (!closed.get) {
if (skipReportTasks.contains(getShortName(task))) {
lastTaskCount.set(-1) // force a report for remote clients
report()
} else Util.ignoreResult(active.put(task, schedule(threshold, recurring = false)(doReport())))
try {
Util.ignoreResult(executor.submit((() => {
if (skipReportTasks.contains(getShortName(task))) {
lastTaskCount.set(-1) // force a report for remote clients
report()
} else
Util.ignoreResult(active.put(task, schedule(threshold, recurring = false)(doReport())))
}): Runnable))
} catch { case _: RejectedExecutionException => }
} else {
logger.debug(s"called afterReady for ${taskName(task)} after task progress was closed")
}