- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
[continuations plugin] Can I use reify and ControlContext directly?
Sat, 2012-01-28, 18:34
Will I lose any performance optimization?Here's my code (with akka 2.0-M3): import util.continuations._import akka.dispatch.{ExecutionContext, Promise}
object AsFuture { def apply[T](ctx: => T@suspendable)(implicit executor: ExecutionContext) = { val ctxR = reify[T,Unit,Unit](ctx) if (ctxR.isTrivial) Promise.successful(ctxR.getTrivialValue.asInstanceOf[T]) else { val promise = Promise[T]() ctxR.foreachFull(promise.success(_), promise.failure(_)) promise } }}
object AsFuture { def apply[T](ctx: => T@suspendable)(implicit executor: ExecutionContext) = { val ctxR = reify[T,Unit,Unit](ctx) if (ctxR.isTrivial) Promise.successful(ctxR.getTrivialValue.asInstanceOf[T]) else { val promise = Promise[T]() ctxR.foreachFull(promise.success(_), promise.failure(_)) promise } }}