summaryrefslogblamecommitdiff
path: root/src/library/scala/concurrent/ExecutionContext.scala
blob: 16d9a1f9801df09c58cd71d36ff679392a5d1eb2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10







                                                                          

                        
 
 
                                                    
                                                                      
                                     
                                                                                                                 

                                            
 
 
 
                        
 
                                       
 
                                     
 

                                                                           
                                       
 
                              
 
                                              
 

 
 
 
 
/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2003-2011, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */

package scala.concurrent



import java.util.concurrent.atomic.{ AtomicInteger }
import java.util.concurrent.{ Executors, Future => JFuture, Callable }
import scala.concurrent.util.Duration
import scala.concurrent.forkjoin.{ ForkJoinPool, RecursiveTask => FJTask, RecursiveAction, ForkJoinWorkerThread }
import scala.collection.generic.CanBuildFrom
import collection._



trait ExecutionContext {

  def execute(runnable: Runnable): Unit

  def execute[U](body: () => U): Unit

  def internalBlockingCall[T](awaitable: Awaitable[T], atMost: Duration): T
  
  def reportFailure(t: Throwable): Unit

  /* implementations follow */

  private implicit val executionContext = this

}