Java 类io.reactivex.internal.util.OpenHashSet 实例源码

项目:RxJava2Swing    文件:AsyncSwingScheduler.java   
@Override
public void dispose() {
    if (!disposed) {
        OpenHashSet<Disposable> set;
        synchronized (this) {
            if (disposed) {
                return;
            }
            set = tasks;
            tasks = null;
            disposed = true;
        }

        Object[] keys = set.keys();
        for (Object o : keys) {
            if (o instanceof Disposable) {
                ((Disposable) o).dispose();
            }
        }
    }
}
项目:RxJava2Extensions    文件:CompositeSubscription.java   
public boolean add(Subscription s) {
    if (!cancelled) {
        synchronized (this) {
            if (!cancelled) {
                OpenHashSet<Subscription> h = set;
                if (h == null) {
                    h = new OpenHashSet<Subscription>();
                    set = h;
                }
                h.add(s);
                return true;
            }
        }
    }
    s.cancel();
    return false;
}
项目:RxJava2Extensions    文件:CompositeSubscription.java   
@Override
public void cancel() {
    if (!cancelled) {
        OpenHashSet<Subscription> h;
        synchronized (this) {
            if (cancelled) {
                return;
            }
            h = set;
            set = null;
            cancelled = true;
        }

        if (h != null) {
            Object[] array = h.keys();
            for (Object o : array) {
                if (o != null) {
                    ((Subscription)o).cancel();
                }
            }
        }
    }
}
项目:akarnokd-misc    文件:SingleResourceScheduler.java   
@Override
public void dispose() {
    if (!disposed) {
        OpenHashSet<WorkerTask> set;
        synchronized (this) {
            if (disposed) {
                return;
            }
            disposed = true;
            set = tasks;
            tasks = null;
        }

        Object[] o = set.keys();
        for (Object e : o) {
            if (e instanceof WorkerTask) {
                WorkerTask wt = (WorkerTask) e;
                wt.dispose();
            }
        }
    }
}
项目:RxJava2Extensions    文件:CompositeSubscription.java   
public void delete(Subscription s) {
    if (!cancelled) {
        synchronized (this) {
            if (!cancelled) {
                OpenHashSet<Subscription> h = set;
                if (h != null) {
                    h.remove(s);
                }
            }
        }
    }
}
项目:akarnokd-misc    文件:SingleResourceScheduler.java   
boolean add(WorkerTask task) {
    synchronized (this) {
        OpenHashSet<WorkerTask> set = tasks;
        if (set != null) {
            set.add(task);
            return true;
        }
    }
    return false;
}
项目:akarnokd-misc    文件:SingleResourceScheduler.java   
void delete(WorkerTask task) {
    synchronized (this) {
        OpenHashSet<WorkerTask> set = tasks;
        if (set != null) {
            set.remove(task);
        }
    }
}
项目:RxJava2Swing    文件:AsyncSwingScheduler.java   
AsyncSwingWorker() {
    this.tasks = new OpenHashSet<Disposable>();
}
项目:akarnokd-misc    文件:SingleResourceScheduler.java   
SingleResourceWorker() {
    this.tasks = new OpenHashSet<>();
}