@Override
    public boolean add(@NonNull Disposable disposable) {
        ObjectHelper.requireNonNull(disposable, "disposable is null");
        if (!disposed) {
            synchronized (this) {
                if (!disposed) {
                    OpenHashSet<Disposable> set = resources;
                    if (set == null) {
                        set = new OpenHashSet<Disposable>();
                        resources = set;
                    }
                    set.add(disposable);
                    return true;
                }
            }
        }
        disposable.dispose();
        return false;
    }
@Override
    public boolean add(@NonNull Disposable disposable) {
        ObjectHelper.requireNonNull(disposable, "disposable is null");
        if (!disposed) {
            synchronized (this) {
                if (!disposed) {
                    OpenHashSet<Disposable> set = resources;
                    if (set == null) {
                        set = new OpenHashSet<Disposable>();
                        resources = set;
                    }
                    set.add(disposable);
                    return true;
                }
            }
        }
        disposable.dispose();
        return false;
    }
@ Override public boolean add ( @ NonNull Disposable disposable ) { ObjectHelper . requireNonNull ( disposable , "disposable is null" ) ; if ( ! disposed ) { synchronized ( this ) { if ( ! disposed ) { OpenHashSet < Disposable > set = resources ; if ( set == null ) { set = new OpenHashSet < Disposable > ( ) ; resources = set ; } set . add ( disposable ) ; return true ; } } } disposable . dispose ( ) ; return false ; }
Adds a disposable to this container or disposes it if the
container has been disposed.
@param disposable the disposable to add, not null
@return true if successful, false if this container has been disposed
@throws NullPointerException if {@code disposable} is null
Adds a disposable to this container or disposes it if the container has been disposed .