aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/AsyncBase.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/scala/async/AsyncBase.scala')
-rw-r--r--src/main/scala/scala/async/AsyncBase.scala23
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)
+ }
+}