src/main/java/io/reactivex/internal/observers/BasicFuseableObserver.java
protected final int transitiveBoundaryFusion(int mode) {
        QueueDisposable<T> qd = this.qd;
        if (qd != null) {
            if ((mode & BOUNDARY) == 0) {
                int m = qd.requestFusion(mode);
                if (m != NONE) {
                    sourceMode = m;
                }
                return m;
            }
        }
        return NONE;
    }
protected final int transitiveBoundaryFusion(int mode) {
        QueueDisposable<T> qd = this.qd;
        if (qd != null) {
            if ((mode & BOUNDARY) == 0) {
                int m = qd.requestFusion(mode);
                if (m != NONE) {
                    sourceMode = m;
                }
                return m;
            }
        }
        return NONE;
    }
protected final int transitiveBoundaryFusion ( int mode ) { QueueDisposable < T > qd = this . qd ; if ( qd != null ) { if ( ( mode & BOUNDARY ) == 0 ) { int m = qd . requestFusion ( mode ) ; if ( m != NONE ) { sourceMode = m ; } return m ; } } return NONE ; }
Calls the upstream's QueueDisposable.requestFusion with the mode and
saves the established mode in {@link #sourceMode} if that mode doesn't
have the {@link QueueDisposable#BOUNDARY} flag set.
<p>
If the upstream doesn't support fusion ({@link #qd} is null), the method
returns {@link QueueDisposable#NONE}.
@param mode the fusion mode requested
@return the established fusion mode
Calls the upstream s QueueDisposable . requestFusion with the mode and saves the established mode in {