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