diff options
author | Paul Phillips <paulp@improving.org> | 2010-11-26 21:53:28 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-11-26 21:53:28 +0000 |
commit | 66f0296fda8aea4ee8ea749b45cc111fe9a6b1d1 (patch) | |
tree | 9686c119a3eb6b21c7ecc71e5e529672d91fa8aa /src/compiler/scala/tools/nsc/io/package.scala | |
parent | 1fcb86507062f9923465cdf72e6b70c3a1cfe96b (diff) | |
download | scala-66f0296fda8aea4ee8ea749b45cc111fe9a6b1d1.tar.gz scala-66f0296fda8aea4ee8ea749b45cc111fe9a6b1d1.tar.bz2 scala-66f0296fda8aea4ee8ea749b45cc111fe9a6b1d1.zip |
Making the installation of the repl sigint hand...
Making the installation of the repl sigint handler take place less
eagerly. And more relevantly to recent hangs, made the repl only create
daemon threads. No review.
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 = { |