code: public static <T> Observable<T> toColdObservable(final List<ComposableFuture<T>> futures, final boolean failOnError) {
      return Observable.create(subscriber -> {
        final AtomicInteger counter = new AtomicInteger(futures.size());
        final AtomicBoolean errorTrigger = new AtomicBoolean(false);
  
        for (final ComposableFuture<T> future : futures) {
          future.consume(provideObserverResult(subscriber, counter, errorTrigger, failOnError));
        }
      });
    }
docs: translate a list of lazy futures to a cold Observable stream
  
  @param futures     the lazy list of futures
  @param failOnError whether to close the stream upon a future error
  @param <T>         the stream type
  @return the stream