summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/io/package.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-11-26 21:53:28 +0000
committerPaul Phillips <paulp@improving.org>2010-11-26 21:53:28 +0000
commit66f0296fda8aea4ee8ea749b45cc111fe9a6b1d1 (patch)
tree9686c119a3eb6b21c7ecc71e5e529672d91fa8aa /src/compiler/scala/tools/nsc/io/package.scala
parent1fcb86507062f9923465cdf72e6b70c3a1cfe96b (diff)
downloadscala-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.scala14
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 = {