def selectFirstSuccessfulTrial[T]()

in storehaus-core/src/main/scala/com/twitter/storehaus/FutureOps.scala [63:74]


  def selectFirstSuccessfulTrial[T](futures: Seq[Future[T]])(pred: T => Boolean): Future[T] =
    Future.select(futures)
      .flatMap { case (completedTry, otherFutures) =>
        if (otherFutures.isEmpty) {
          Future.const(completedTry)
        } else {
          completedTry.filter(pred) match {
            case Throw(e) => selectFirstSuccessfulTrial(otherFutures)(pred)
            case Return(t) => Future.value(t)
          }
        }
    }