diff options
Diffstat (limited to 'src/main/scala/scala/async/AsyncBase.scala')
-rw-r--r-- | src/main/scala/scala/async/AsyncBase.scala | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/AsyncBase.scala b/src/main/scala/scala/async/AsyncBase.scala new file mode 100644 index 0000000..ff04a57 --- /dev/null +++ b/src/main/scala/scala/async/AsyncBase.scala @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2012 Typesafe Inc. <http://www.typesafe.com> + */ + +package scala.async + +import scala.language.experimental.macros +import scala.reflect.macros.Context +import scala.concurrent.{Future, ExecutionContext} +import scala.async.internal.{AsyncBase, ScalaConcurrentFutureSystem} + +object Async extends AsyncBase { + type FS = ScalaConcurrentFutureSystem.type + val futureSystem: FS = ScalaConcurrentFutureSystem + + def async[T](body: T)(implicit execContext: ExecutionContext): Future[T] = macro asyncImpl[T] + + override def asyncImpl[T: c.WeakTypeTag](c: Context) + (body: c.Expr[T]) + (execContext: c.Expr[futureSystem.ExecContext]): c.Expr[Future[T]] = { + super.asyncImpl[T](c)(body)(execContext) + } +} |