diff options
Diffstat (limited to 'src/main/scala/scala/async/AsyncWithCPSFallback.scala')
-rw-r--r-- | src/main/scala/scala/async/AsyncWithCPSFallback.scala | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/src/main/scala/scala/async/AsyncWithCPSFallback.scala b/src/main/scala/scala/async/AsyncWithCPSFallback.scala deleted file mode 100644 index 39e43a3..0000000 --- a/src/main/scala/scala/async/AsyncWithCPSFallback.scala +++ /dev/null @@ -1,31 +0,0 @@ -package scala.async - -import scala.language.experimental.macros - -import scala.reflect.macros.Context -import scala.util.continuations._ - -object AsyncWithCPSFallback extends AsyncBase { - - import scala.concurrent.{Future, ExecutionContext} - import ExecutionContext.Implicits.global - - lazy val futureSystem = ScalaConcurrentFutureSystem - type FS = ScalaConcurrentFutureSystem.type - - /* Fall-back for `await` when it is called at an unsupported position. - */ - override def awaitFallback[T, U](awaitable: futureSystem.Fut[T], p: futureSystem.Prom[U]): T @cpsParam[U, Unit] = - shift { - (k: (T => U)) => - awaitable onComplete { - case tr => p.success(k(tr.get)) - } - } - - override def fallbackEnabled = true - - def async[T](body: T) = macro asyncImpl[T] - - override def asyncImpl[T: c.WeakTypeTag](c: Context)(body: c.Expr[T]): c.Expr[Future[T]] = super.asyncImpl[T](c)(body) -} |