src/main/java/io/reactivex/Maybe.java
@BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <U> Maybe<T> timeout(Publisher<U> timeoutIndicator) {
        ObjectHelper.requireNonNull(timeoutIndicator, "timeoutIndicator is null");
        return RxJavaPlugins.onAssembly(new MaybeTimeoutPublisher<T, U>(this, timeoutIndicator, null));
    }
@BackpressureSupport(BackpressureKind.UNBOUNDED_IN)
    @CheckReturnValue
    @NonNull
    @SchedulerSupport(SchedulerSupport.NONE)
    public final <U> Maybe<T> timeout(Publisher<U> timeoutIndicator) {
        ObjectHelper.requireNonNull(timeoutIndicator, "timeoutIndicator is null");
        return RxJavaPlugins.onAssembly(new MaybeTimeoutPublisher<T, U>(this, timeoutIndicator, null));
    }
If the current {@code Maybe} source didn't signal an event before the {@code timeoutIndicator} {@link Publisher} signals, a
{@link TimeoutException} is signaled instead.
<dl>
<dt><b>Backpressure:</b></dt>
<dd>The {@code timeoutIndicator} {@link Publisher} is consumed in an unbounded manner and
is cancelled after its first item.</dd>
<dt><b>Scheduler:</b></dt>
<dd>{@code timeout} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@param <U> the value type of the
@param timeoutIndicator the {@code MaybeSource} that indicates the timeout by signaling {@code onSuccess}
or {@code onComplete}.
@return the new Maybe instance