diff options
author | Aleksandar Prokopec <aleksandar.prokopec@gmail.com> | 2011-12-05 16:43:22 +0100 |
---|---|---|
committer | Aleksandar Prokopec <aleksandar.prokopec@gmail.com> | 2011-12-05 16:43:22 +0100 |
commit | f01ab43357b2b565d94ec09bdef82f2437da0db9 (patch) | |
tree | a42da3e91eeb384cc5e8da454a852422866c9d66 /src/library/scala/concurrent/ExecutionContext.scala | |
parent | d38ca89f8d50c0d6eafac623f0edc165c01f8bd4 (diff) | |
download | scala-f01ab43357b2b565d94ec09bdef82f2437da0db9.tar.gz scala-f01ab43357b2b565d94ec09bdef82f2437da0db9.tar.bz2 scala-f01ab43357b2b565d94ec09bdef82f2437da0db9.zip |
The default implementations for some of the future methods.
Diffstat (limited to 'src/library/scala/concurrent/ExecutionContext.scala')
-rw-r--r-- | src/library/scala/concurrent/ExecutionContext.scala | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/library/scala/concurrent/ExecutionContext.scala b/src/library/scala/concurrent/ExecutionContext.scala index 972a76a95a..5ab712b89a 100644 --- a/src/library/scala/concurrent/ExecutionContext.scala +++ b/src/library/scala/concurrent/ExecutionContext.scala @@ -1,30 +1,34 @@ package scala.concurrent + import java.util.concurrent.{ Executors, Future => JFuture } import scala.util.{ Duration, Timeout } import scala.concurrent.forkjoin.{ ForkJoinPool, RecursiveTask => FJTask, RecursiveAction, ForkJoinWorkerThread } -trait ExecutionContext { +trait ExecutionContext { + protected implicit object CanBlockEvidence extends CanBlock def execute(task: Runnable): Unit def makeTask[T](task: () => T)(implicit timeout: Timeout): Task[T] - def makePromise[T](timeout: Timeout): Promise[T] + def makePromise[T](implicit timeout: Timeout): Promise[T] def blockingCall[T](body: Blockable[T]): T - + } -trait Task[T] { +trait Task[T] { + def start(): Unit def future: Future[T] - + } + /* DONE: The challenge is to make ForkJoinPromise inherit from RecursiveAction * to avoid an object allocation per promise. This requires turning DefaultPromise * into a trait, i.e., removing its constructor parameters. |