code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.NONE)
      public final Completable doFinally(Action onFinally) {
          ObjectHelper.requireNonNull(onFinally, "onFinally is null");
          return RxJavaPlugins.onAssembly(new CompletableDoFinally(this, onFinally));
      }
docs: Calls the specified action after this Completable signals onError or onComplete or gets disposed by
  the downstream.
  <p>
  <img width="640" height="331" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Completable.doFinally.png" alt="">
  <p>
  In case of a race between a terminal event and a dispose call, the provided {@code onFinally} action
  is executed once per subscription.
  <p>
  Note that the {@code onFinally} action is shared between subscriptions and as such
  should be thread-safe.
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code doFinally} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  <p>History: 2.0.1 - experimental
  @param onFinally the action called when this Completable terminates or gets disposed
  @return the new Completable instance
  @since 2.1