diff --git a/main/src/main/scala/sbt/Main.scala b/main/src/main/scala/sbt/Main.scala index 65b436be0..67bc59857 100644 --- a/main/src/main/scala/sbt/Main.scala +++ b/main/src/main/scala/sbt/Main.scala @@ -105,11 +105,18 @@ object StandardMain { import scalacache.caffeine._ private[sbt] lazy val cache: Cache[Any] = CaffeineCache[Any] + private[sbt] val shutdownHook = new Thread(new Runnable { + def run(): Unit = { + exchange.shutdown + } + }) + def runManaged(s: State): xsbti.MainResult = { val previous = TrapExit.installManager() try { try { try { + Runtime.getRuntime.addShutdownHook(shutdownHook) MainLoop.runLogged(s) } finally exchange.shutdown } finally DefaultBackgroundJobService.backgroundJobService.shutdown()