reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final Flux<Flux<T>> windowUntil(Predicate<T> boundaryTrigger) {
		return windowUntil(boundaryTrigger, false);
	}
public final Flux<Flux<T>> windowUntil(Predicate<T> boundaryTrigger) {
		return windowUntil(boundaryTrigger, false);
	}
Split this {@link Flux} sequence into multiple {@link Flux} windows delimited by the
given predicate. A new window is opened each time the predicate returns true, at which
point the previous window will receive the triggering element then onComplete.
<p>
Windows are lazily made available downstream at the point where they receive their
first event (an element is pushed, the window errors). This variant shouldn't
expose empty windows, as the separators are emitted into
the windows they close.

<p>
<img class="marble" src="doc-files/marbles/windowUntil.svg" alt="">

@reactor.discard This operator discards elements it internally queued for backpressure
upon cancellation or error triggered by a data signal.

@param boundaryTrigger a predicate that triggers the next window when it becomes true.
@return a {@link Flux} of {@link Flux} windows, bounded depending
on the predicate.