summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/util/WorkScheduler.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2010-10-25 13:26:35 +0000
committerMartin Odersky <odersky@gmail.com>2010-10-25 13:26:35 +0000
commit5c322510b185e7ee50ec6f75057369c427b9724b (patch)
tree4d9a8ba65fac59172673cfdce4d0d288e2e94aad /src/compiler/scala/tools/nsc/util/WorkScheduler.scala
parentbaf9c6f3803d64b7d03fa9193871a85cd29c00b8 (diff)
downloadscala-5c322510b185e7ee50ec6f75057369c427b9724b.tar.gz
scala-5c322510b185e7ee50ec6f75057369c427b9724b.tar.bz2
scala-5c322510b185e7ee50ec6f75057369c427b9724b.zip
Now short-circuits reload work items that are s...
Now short-circuits reload work items that are superseded by later ones.
Diffstat (limited to 'src/compiler/scala/tools/nsc/util/WorkScheduler.scala')
-rw-r--r--src/compiler/scala/tools/nsc/util/WorkScheduler.scala3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/util/WorkScheduler.scala b/src/compiler/scala/tools/nsc/util/WorkScheduler.scala
index f520aec8bc..509efca8e5 100644
--- a/src/compiler/scala/tools/nsc/util/WorkScheduler.scala
+++ b/src/compiler/scala/tools/nsc/util/WorkScheduler.scala
@@ -26,6 +26,9 @@ class WorkScheduler {
if (todo.isEmpty) None else Some(todo.dequeue())
}
+ def dequeueAll[T](f: Action => Option[T]): Seq[T] =
+ todo.dequeueAll(a => f(a).isDefined).map(a => f(a).get)
+
/** Called from server: return optional exception posted by client
* Reset to no exception.
*/