diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/io/package.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/io/package.scala | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/io/package.scala b/src/compiler/scala/tools/nsc/io/package.scala index 1d484a6c0e..8534e92f27 100644 --- a/src/compiler/scala/tools/nsc/io/package.scala +++ b/src/compiler/scala/tools/nsc/io/package.scala @@ -5,7 +5,7 @@ package scala.tools.nsc -import java.util.concurrent.{ Future, Callable, Executors } +import java.util.concurrent.{ Future, Callable, Executors, ThreadFactory } import java.util.{ Timer, TimerTask } package object io { @@ -17,6 +17,18 @@ package object io { def callableFn[T](f: () => T): Callable[T] = callable(f()) def spawnFn[T](f: () => T): Future[T] = spawn(f()) + def newSingleThreadDaemonExecutor() = { + val factory = new ThreadFactory { + val default = Executors.defaultThreadFactory() + def newThread(r: Runnable) = { + val t = default.newThread(r) + t setDaemon true + t + } + } + Executors.newSingleThreadExecutor(factory) + } + // Create, start, and return a background thread // If isDaemon is true, it is marked as daemon (and will not interfere with JVM shutdown) def daemonize(isDaemon: Boolean)(body: => Unit): Thread = { |