summaryrefslogtreecommitdiff
path: root/cask/src/cask/internal/Util.scala
diff options
context:
space:
mode:
Diffstat (limited to 'cask/src/cask/internal/Util.scala')
-rw-r--r--cask/src/cask/internal/Util.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/cask/src/cask/internal/Util.scala b/cask/src/cask/internal/Util.scala
index 3f7ab61..87e2a15 100644
--- a/cask/src/cask/internal/Util.scala
+++ b/cask/src/cask/internal/Util.scala
@@ -7,9 +7,14 @@ import scala.collection.mutable
import java.io.OutputStream
import scala.annotation.switch
+import scala.concurrent.{ExecutionContext, Future, Promise}
object Util {
-
+ def firstFutureOf[T](futures: Seq[Future[T]])(implicit ec: ExecutionContext) = {
+ val p = Promise[T]
+ futures.foreach(_.foreach(p.trySuccess))
+ p.future
+ }
/**
* Convert a string to a C&P-able literal. Basically
* copied verbatim from the uPickle source code.