code: public static AsyncSemaphoreBuilder newBuilder(Supplier<Integer> concurrentRequestLimit, ScheduledExecutorService flushingExecutor) {
      return new AsyncSemaphoreBuilder(new PermitSource(concurrentRequestLimit), flushingExecutor);
    }
docs: Create an AsyncSemaphore with the given limit.
  
  @param concurrentRequestLimit - A supplier saying how many concurrent requests are allowed