diff options
-rw-r--r-- | src/library/scala/concurrent/impl/ExecutionContextImpl.scala | 2 | ||||
-rw-r--r-- | test/files/jvm/scala-concurrent-tck.scala | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/library/scala/concurrent/impl/ExecutionContextImpl.scala b/src/library/scala/concurrent/impl/ExecutionContextImpl.scala index 9a03b1d5df..697b69badd 100644 --- a/src/library/scala/concurrent/impl/ExecutionContextImpl.scala +++ b/src/library/scala/concurrent/impl/ExecutionContextImpl.scala @@ -115,7 +115,7 @@ private[concurrent] object ExecutionContextImpl { def fromExecutorService(es: ExecutorService, reporter: Throwable => Unit = ExecutionContext.defaultReporter): ExecutionContextImpl with ExecutionContextExecutorService = new ExecutionContextImpl(es, reporter) with ExecutionContextExecutorService { - final def asExecutorService: ExecutorService = executor.right.asInstanceOf[ExecutorService] + final def asExecutorService: ExecutorService = executor.right.get.asInstanceOf[ExecutorService] override def execute(command: Runnable) = executor.right.get.execute(command) override def shutdown() { asExecutorService.shutdown() } override def shutdownNow() = asExecutorService.shutdownNow() diff --git a/test/files/jvm/scala-concurrent-tck.scala b/test/files/jvm/scala-concurrent-tck.scala index 7d79f20064..3988281006 100644 --- a/test/files/jvm/scala-concurrent-tck.scala +++ b/test/files/jvm/scala-concurrent-tck.scala @@ -1027,6 +1027,26 @@ trait ExecutionContextPrepare extends TestBase { testMap() } +trait ExecutorServiceExecutionContext extends TestBase { + import java.util.concurrent.Executors + import scala.concurrent.duration._ + + def testExecutorServiceEC(): Unit = + once { done => + val ec = ExecutionContext.fromExecutorService(Executors.newCachedThreadPool) + val p = Promise[Boolean]() + ec.execute(new Runnable { + def run(): Unit = p.success(true) + }) + assert(Await.result(p.future, 2.seconds)) + ec.shutdown() + assert(true) + done() + } + + testExecutorServiceEC() +} + object Test extends App with FutureCallbacks @@ -1037,6 +1057,7 @@ with BlockContexts with Exceptions with CustomExecutionContext with ExecutionContextPrepare +with ExecutorServiceExecutionContext { System.exit(0) } |