src/main/java/io/reactivex/Single.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.CUSTOM)
    public final Single<T> timeout(long timeout, TimeUnit unit, Scheduler scheduler) {
        return timeout0(timeout, unit, scheduler, null);
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.CUSTOM)
    public final Single<T> timeout(long timeout, TimeUnit unit, Scheduler scheduler) {
        return timeout0(timeout, unit, scheduler, null);
    }
Signals a TimeoutException if the current Single doesn't signal a success value within the
specified timeout window.
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code timeout} signals the TimeoutException on the {@link Scheduler} you specify.</dd>
</dl>
@param timeout the timeout amount
@param unit the time unit
@param scheduler the target scheduler where the timeout is awaited and the TimeoutException
signalled
@return the new Single instance
@since 2.0