@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, final long delay, final TimeUnit unit) { final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); if (executor instanceof ScheduledExecutorService) { try { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).schedule(task, delay, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } final DelayedRunnable dr = new DelayedRunnable(decoratedRun); Disposable delayed = HELPER.scheduleDirect(new DelayedDispose(dr), delay, unit); dr.timed.replace(delayed); return dr; }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, final long delay, final TimeUnit unit) { final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); if (executor instanceof ScheduledExecutorService) { try { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).schedule(task, delay, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } final DelayedRunnable dr = new DelayedRunnable(decoratedRun); Disposable delayed = HELPER.scheduleDirect(new DelayedDispose(dr), delay, unit); dr.timed.replace(delayed); return dr; }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, final long delay, final TimeUnit unit) { final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); if (executor instanceof ScheduledExecutorService) { try { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).schedule(task, delay, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } final DelayedRunnable dr = new DelayedRunnable(decoratedRun); Disposable delayed = HELPER.scheduleDirect(new DelayedDispose(dr), delay, unit); dr.timed.replace(delayed); return dr; }
@Override public boolean isDisposed() { return get() == null; }
@Override public boolean isDisposed() { return get() == null; }
@Override public void dispose() { if (getAndSet(null) != null) { timed.dispose(); direct.dispose(); } } }
@Override public void dispose() { if (getAndSet(null) != null) { timed.dispose(); direct.dispose(); } } }
@Override public boolean isDisposed() { return get() == null; }
@Override public void dispose() { if (getAndSet(null) != null) { timed.dispose(); direct.dispose(); } } }