code: public final <C extends Collection<? super T>> Flux<C> bufferTimeout(int maxSize, Duration maxTime, Supplier<C> bufferSupplier) {
  		return bufferTimeout(maxSize, maxTime, Schedulers.parallel(),
  				bufferSupplier);
  	}
docs: Collect incoming values into multiple user-defined {@link Collection} buffers that
  will be emitted by the returned {@link Flux} each time the buffer reaches a maximum
  size OR the maxTime {@link Duration} elapses.
  <p>
  <img class="marble" src="doc-files/marbles/bufferTimeoutWithMaxSizeAndTimespan.svg" alt="">
  
  @reactor.discard This operator discards the currently open buffer upon cancellation or error triggered by a data signal.
  
  @param maxSize the max collected size
  @param maxTime the timeout enforcing the release of a partial buffer
  @param bufferSupplier a {@link Supplier} of the concrete {@link Collection} to use for each buffer
  @param <C> the {@link Collection} buffer type
  @return a microbatched {@link Flux} of {@link Collection} delimited by given size or a given period timeout