@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.COMPUTATION)
    public final Single<T> timeout(long timeout, TimeUnit unit, SingleSource<? extends T> other) {
        ObjectHelper.requireNonNull(other, "other is null");
        return timeout0(timeout, unit, Schedulers.computation(), other);
    }
@ CheckReturnValue @ SchedulerSupport ( SchedulerSupport . COMPUTATION ) public final Single < T > timeout ( long timeout , TimeUnit unit , SingleSource < ? extends T > other ) { ObjectHelper . requireNonNull ( other , "other is null" ) ; return timeout0 ( timeout , unit , Schedulers . computation ( ) , other ) ; }
Runs the current Single and if it doesn't signal within the specified timeout window, it is
disposed and the other SingleSource subscribed to.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code timeout} subscribes to the other SingleSource on
the {@code computation} {@link Scheduler}.</dd>
</dl>
@param timeout the timeout amount
@param unit the time unit
@param other the other SingleSource that gets subscribed to if the current Single times out
@return the new Single instance
@throws NullPointerException
if other is null, or
if unit is null, or
if scheduler is null
@since 2.0