@Override public void start() { ScheduledExecutorService[] b = null; for (;;) { ScheduledExecutorService[] a = executors; if (a != SHUTDOWN) { if (b != null) { for (ScheduledExecutorService exec : b) { exec.shutdownNow(); } } return; } if (b == null) { b = new ScheduledExecutorService[n]; for (int i = 0; i < n; i++) { b[i] = Schedulers.decorateExecutorService(this, this.get()); } } if (EXECUTORS.compareAndSet(this, a, b)) { return; } } }
void init(int n) { ScheduledExecutorService[] a = new ScheduledExecutorService[n]; for (int i = 0; i < n; i++) { a[i] = Schedulers.decorateExecutorService(this, this.get()); } EXECUTORS.lazySet(this, a); }
@Override public void start() { ScheduledExecutorService[] b = null; for (;;) { ScheduledExecutorService[] a = executors; if (a != SHUTDOWN) { if (b != null) { for (ScheduledExecutorService exec : b) { exec.shutdownNow(); } } return; } if (b == null) { b = new ScheduledExecutorService[n]; for (int i = 0; i < n; i++) { b[i] = Schedulers.decorateExecutorService(this, this.get()); } } if (EXECUTORS.compareAndSet(this, a, b)) { return; } } }
void init(int n) { ScheduledExecutorService[] a = new ScheduledExecutorService[n]; for (int i = 0; i < n; i++) { a[i] = Schedulers.decorateExecutorService(this, this.get()); } EXECUTORS.lazySet(this, a); }