src/main/java/io/reactivex/Observable.java
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Observable<T> onTerminateDetach() {
        return RxJavaPlugins.onAssembly(new ObservableDetach<T>(this));
    }
@CheckReturnValue
    @SchedulerSupport(SchedulerSupport.NONE)
    public final Observable<T> onTerminateDetach() {
        return RxJavaPlugins.onAssembly(new ObservableDetach<T>(this));
    }
Nulls out references to the upstream producer and downstream Observer if
the sequence is terminated or downstream calls dispose().
<p>
<img width="640" height="246" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/onTerminateDetach.o.png" alt="">
<dl>
<dt><b>Scheduler:</b></dt>
<dd>{@code onTerminateDetach} does not operate by default on a particular {@link Scheduler}.</dd>
</dl>
@return an Observable which nulls out references to the upstream producer and downstream Observer if
the sequence is terminated or downstream calls dispose()
@since 2.0