code: @Override
    public void accept(final FastFuture<T> t) {
  
      active.add(t);
  
      if (active.size() > maxActive.getMaxActive()) {
  
        while (active.size() > maxActive.getReduceTo()) {
  
          final List<FastFuture> toRemove = active.stream()
            .filter(cf -> cf.isDone())
            .peek(this::handleExceptions)
            .collect(Collectors.toList());
  
          active.removeAll(toRemove);
          if (active.size() > maxActive.getReduceTo()) {
            final CompletableFuture promise = new CompletableFuture();
            FastFuture.xOf(active.size() - maxActive.getReduceTo(), () -> promise.complete(true), active.toArray(new FastFuture[0]));
  
            promise.join();
          }
  
        }
      }
  
    }
docs: /*
  @param t Result type
  @see java.util.function.Consumer#accept(java.lang.Object)