src/main/java/io/reactivex/disposables/Disposables.java
@NonNull
    public static Disposable fromFuture(@NonNull Future<?> future) {
        ObjectHelper.requireNonNull(future, "future is null");
        return fromFuture(future, true);
    }
@NonNull
    public static Disposable fromFuture(@NonNull Future<?> future) {
        ObjectHelper.requireNonNull(future, "future is null");
        return fromFuture(future, true);
    }
Construct a Disposable by wrapping a Future that is
cancelled exactly once when the Disposable is disposed.
@param future the Future to wrap
@return the new Disposable instance