@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final boolean blockingAwait(long timeout, TimeUnit unit) {
        ObjectHelper.requireNonNull(unit, "unit is null");
        BlockingMultiObserver<Void> observer = new BlockingMultiObserver<Void>();
        subscribe(observer);
        return observer.blockingAwait(timeout, unit);
    }
@ CheckReturnValue @ SchedulerSupport ( SchedulerSupport . NONE ) public final boolean blockingAwait ( long timeout , TimeUnit unit ) { ObjectHelper . requireNonNull ( unit , "unit is null" ) ; BlockingMultiObserver < Void > observer = new BlockingMultiObserver < Void > ( ) ; subscribe ( observer ) ; return observer . blockingAwait ( timeout , unit ) ; }
Subscribes to and awaits the termination of this Completable instance in a blocking manner
with a specific timeout and rethrows any exception emitted within the timeout window.
<p>
<img width="640" height="348" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.blockingAwait.t.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code blockingAwait} does not operate by default on a particular {@link Scheduler}.</dd>
<dt><b>Error handling:</b></dt>
<dd>If the source signals an error, the operator wraps a checked {@link Exception}
into {@link RuntimeException} and throws that. Otherwise, {@code RuntimeException}s and
{@link Error}s are rethrown as they are.</dd>
</dl>
@param timeout the timeout value
@param unit the timeout unit
@return true if the this Completable instance completed normally within the time limit,
false if the timeout elapsed before this Completable terminated.
@throws RuntimeException wrapping an InterruptedException if the current thread is interrupted