summaryrefslogtreecommitdiff
path: root/src/library/scala/concurrent/ExecutionContext.scala
diff options
context:
space:
mode:
authorAleksandar Prokopec <aleksandar.prokopec@gmail.com>2011-12-05 16:43:22 +0100
committerAleksandar Prokopec <aleksandar.prokopec@gmail.com>2011-12-05 16:43:22 +0100
commitf01ab43357b2b565d94ec09bdef82f2437da0db9 (patch)
treea42da3e91eeb384cc5e8da454a852422866c9d66 /src/library/scala/concurrent/ExecutionContext.scala
parentd38ca89f8d50c0d6eafac623f0edc165c01f8bd4 (diff)
downloadscala-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.scala14
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.