diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-09-16 10:32:12 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-09-19 18:07:38 +0200 |
commit | 9fe6b69268efc69f346e8c2d2566bbe07011bb35 (patch) | |
tree | e704b7db614a3278ffe3c509f2623fa0b5397c9d /src/library | |
parent | 884e1ce762d98b29594146d37b85384581d9ba96 (diff) | |
download | scala-9fe6b69268efc69f346e8c2d2566bbe07011bb35.tar.gz scala-9fe6b69268efc69f346e8c2d2566bbe07011bb35.tar.bz2 scala-9fe6b69268efc69f346e8c2d2566bbe07011bb35.zip |
Convenience methods from Try[T] => {Future, Promise}[T]
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/concurrent/Future.scala | 7 | ||||
-rw-r--r-- | src/library/scala/concurrent/Promise.scala | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/library/scala/concurrent/Future.scala b/src/library/scala/concurrent/Future.scala index ec6de84a9d..4e3f3c6c81 100644 --- a/src/library/scala/concurrent/Future.scala +++ b/src/library/scala/concurrent/Future.scala @@ -473,6 +473,13 @@ object Future { */ def successful[T](result: T): Future[T] = Promise.successful(result).future + /** Creates an already completed Future with the specified result or exception. + * + * @tparam T the type of the value in the promise + * @return the newly created `Future` object + */ + def fromTry[T](result: Try[T]): Future[T] = Promise.fromTry(result).future + /** Starts an asynchronous computation and returns a `Future` object with the result of that computation. * * The result becomes available once the asynchronous computation is completed. diff --git a/src/library/scala/concurrent/Promise.scala b/src/library/scala/concurrent/Promise.scala index cfb1dda01f..eb8044ed3b 100644 --- a/src/library/scala/concurrent/Promise.scala +++ b/src/library/scala/concurrent/Promise.scala @@ -128,12 +128,19 @@ object Promise { * @tparam T the type of the value in the promise * @return the newly created `Promise` object */ - def failed[T](exception: Throwable): Promise[T] = new impl.Promise.KeptPromise[T](Failure(exception)) + def failed[T](exception: Throwable): Promise[T] = fromTry(Failure(exception)) /** Creates an already completed Promise with the specified result. * * @tparam T the type of the value in the promise * @return the newly created `Promise` object */ - def successful[T](result: T): Promise[T] = new impl.Promise.KeptPromise[T](Success(result)) + def successful[T](result: T): Promise[T] = fromTry(Success(result)) + + /** Creates an already completed Promise with the specified result or exception. + * + * @tparam T the type of the value in the promise + * @return the newly created `Promise` object + */ + def fromTry[T](result: Try[T]): Promise[T] = new impl.Promise.KeptPromise[T](result) } |