From ff75a21d4f041df15c2c86e1657fa6ee8b30a60b Mon Sep 17 00:00:00 2001 From: Samvel Abrahamyan Date: Tue, 5 Nov 2019 14:54:55 +0100 Subject: [PATCH] Sleep the current thread when we need to retry background job shutdown --- .../scala/sbt/internal/DefaultBackgroundJobService.scala | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala b/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala index 837730bbf..12b94188c 100644 --- a/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala +++ b/main/src/main/scala/sbt/internal/DefaultBackgroundJobService.scala @@ -421,6 +421,13 @@ private[sbt] class BackgroundThreadPool extends java.io.Closeable { status = Stopped(Some(thread)) thread.interrupt() case Stopped(threadOption) => + // sleep to avoid consuming a lot of CPU + try { + Thread.sleep(10) + } catch { + case e: InterruptedException => + Thread.currentThread().interrupt(); + } // try to interrupt again! woot! threadOption.foreach(_.interrupt()) }