public FluxMerge<T> mergeAdditionalSource(Publisher<? extends T> source,IntFunction<Supplier<? extends Queue<T>>> newQueueSupplier){
  int n=sources.length;
  @SuppressWarnings("unchecked") Publisher<? extends T>[] newArray=new Publisher[n + 1];
  System.arraycopy(sources,0,newArray,0,n);
  newArray[n]=source;
  Supplier<? extends Queue<T>> newMainQueue;
  int mc=maxConcurrency;
  if (mc != Integer.MAX_VALUE) {
    mc++;
    newMainQueue=newQueueSupplier.apply(mc);
  }
 else {
    newMainQueue=mainQueueSupplier;
  }
  return new FluxMerge<>(newArray,delayError,mc,newMainQueue,prefetch,innerQueueSupplier);
}

public FluxMerge < T > mergeAdditionalSource ( Publisher < ? extends T > source , IntFunction < Supplier < ? extends Queue < T > > > newQueueSupplier ) { int n = sources . length ; @ SuppressWarnings ( "unchecked" ) Publisher < ? extends T > [ ] newArray = new Publisher [ n + 1 ] ; System . arraycopy ( sources , 0 , newArray , 0 , n ) ; newArray [ n ] = source ; Supplier < ? extends Queue < T > > newMainQueue ; int mc = maxConcurrency ; if ( mc != Integer . MAX_VALUE ) { mc ++ ; newMainQueue = newQueueSupplier . apply ( mc ) ; } else { newMainQueue = mainQueueSupplier ; } return new FluxMerge < > ( newArray , delayError , mc , newMainQueue , prefetch , innerQueueSupplier ) ; }
returns a new instance which has the additional source to be merged together with the current array of sources . < p > this operation doesn ' t change the current fluxmerge instance .
