@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit) { ScheduledDirectTask task = new ScheduledDirectTask(RxJavaCommonPlugins.onSchedule(run)); try { Future<?> f; if (delay <= 0L) { f = executor.get().submit(task); } else { f = executor.get().schedule(task, delay, unit); } task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit) { ScheduledDirectTask task = new ScheduledDirectTask(RxJavaCommonPlugins.onSchedule(run)); try { Future<?> f; if (delay <= 0L) { f = executor.get().submit(task); } else { f = executor.get().schedule(task, delay, unit); } task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit) { ScheduledDirectTask task = new ScheduledDirectTask(RxJavaCommonPlugins.onSchedule(run)); try { Future<?> f; if (delay <= 0L) { f = executor.get().submit(task); } else { f = executor.get().schedule(task, delay, unit); } task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit) { ScheduledDirectPeriodicTask task = new ScheduledDirectPeriodicTask(RxJavaCommonPlugins.onSchedule(run)); try { Future<?> f = executor.get().scheduleAtFixedRate(task, initialDelay, period, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
/** * Schedules the given runnable periodically on the underlying executor directly * and returns its future wrapped into a Disposable. * @param run the Runnable to execute in a periodic fashion * @param initialDelay the initial delay amount * @param period the repeat period amount * @param unit the time unit for both the initialDelay and period * @return the ScheduledRunnable instance */ public Disposable schedulePeriodicallyDirect(final Runnable run, long initialDelay, long period, TimeUnit unit) { ScheduledDirectPeriodicTask task = new ScheduledDirectPeriodicTask(RxJavaCommonPlugins.onSchedule(run)); try { Future<?> f = executor.scheduleAtFixedRate(task, initialDelay, period, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return Scheduler.REJECTED; } }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { if (executor instanceof ExecutorService) { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ExecutorService)executor).submit(task); task.setFuture(f); return task; } BooleanRunnable br = new BooleanRunnable(decoratedRun); executor.execute(br); return br; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { if (executor instanceof ExecutorService) { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ExecutorService)executor).submit(task); task.setFuture(f); return task; } BooleanRunnable br = new BooleanRunnable(decoratedRun); executor.execute(br); return br; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { if (executor instanceof ExecutorService) { ScheduledDirectTask task = new ScheduledDirectTask(decoratedRun); Future<?> f = ((ExecutorService)executor).submit(task); task.setFuture(f); return task; } BooleanRunnable br = new BooleanRunnable(decoratedRun); executor.execute(br); return br; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); BooleanRunnable br = new BooleanRunnable(decoratedRun); queue.offer(br); if (wip.getAndIncrement() == 0) { try { executor.execute(this); } catch (RejectedExecutionException ex) { disposed = true; queue.clear(); RxJavaCommonPlugins.onError(ex); return REJECTED; } } return br; }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); BooleanRunnable br = new BooleanRunnable(decoratedRun); queue.offer(br); if (wip.getAndIncrement() == 0) { try { executor.execute(this); } catch (RejectedExecutionException ex) { disposed = true; queue.clear(); RxJavaCommonPlugins.onError(ex); return REJECTED; } } return br; }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); BooleanRunnable br = new BooleanRunnable(decoratedRun); queue.offer(br); if (wip.getAndIncrement() == 0) { try { executor.execute(this); } catch (RejectedExecutionException ex) { disposed = true; queue.clear(); RxJavaCommonPlugins.onError(ex); return REJECTED; } } return br; }
@NonNull @Override public Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit) { if (executor instanceof ScheduledExecutorService) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { ScheduledDirectPeriodicTask task = new ScheduledDirectPeriodicTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).scheduleAtFixedRate(task, initialDelay, period, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } return super.schedulePeriodicallyDirect(run, initialDelay, period, unit); } /* public: test support. */
@NonNull @Override public Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit) { if (executor instanceof ScheduledExecutorService) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { ScheduledDirectPeriodicTask task = new ScheduledDirectPeriodicTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).scheduleAtFixedRate(task, initialDelay, period, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } return super.schedulePeriodicallyDirect(run, initialDelay, period, unit); } /* public: test support. */
@NonNull @Override public Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit) { if (executor instanceof ScheduledExecutorService) { Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); try { ScheduledDirectPeriodicTask task = new ScheduledDirectPeriodicTask(decoratedRun); Future<?> f = ((ScheduledExecutorService)executor).scheduleAtFixedRate(task, initialDelay, period, unit); task.setFuture(f); return task; } catch (RejectedExecutionException ex) { RxJavaCommonPlugins.onError(ex); return REJECTED; } } return super.schedulePeriodicallyDirect(run, initialDelay, period, unit); } /* public: test support. */
/** * Schedules the execution of the given task with the given delay amount. * * <p> * This method is safe to be called from multiple threads but there are no * ordering guarantees between tasks. * * @param run the task to schedule * @param delay the delay amount, non-positive values indicate non-delayed scheduling * @param unit the unit of measure of the delay amount * @return the Disposable that let's one cancel this particular delayed task. * @since 2.0 */ @NonNull public Disposable scheduleDirect(@NonNull Runnable run, long delay, @NonNull TimeUnit unit) { final Worker w = createWorker(); final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); DisposeTask task = new DisposeTask(decoratedRun, w); w.schedule(task, delay, unit); return task; }
/** * Schedules the execution of the given task with the given delay amount. * * <p> * This method is safe to be called from multiple threads but there are no * ordering guarantees between tasks. * * @param run the task to schedule * @param delay the delay amount, non-positive values indicate non-delayed scheduling * @param unit the unit of measure of the delay amount * @return the Disposable that let's one cancel this particular delayed task. * @since 2.0 */ @NonNull public Disposable scheduleDirect(@NonNull Runnable run, long delay, @NonNull TimeUnit unit) { final Worker w = createWorker(); final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); DisposeTask task = new DisposeTask(decoratedRun, w); w.schedule(task, delay, unit); return task; }
/** * Schedules the execution of the given task with the given delay amount. * * <p> * This method is safe to be called from multiple threads but there are no * ordering guarantees between tasks. * * @param run the task to schedule * @param delay the delay amount, non-positive values indicate non-delayed scheduling * @param unit the unit of measure of the delay amount * @return the Disposable that let's one cancel this particular delayed task. * @since 2.0 */ @NonNull public Disposable scheduleDirect(@NonNull Runnable run, long delay, @NonNull TimeUnit unit) { final Worker w = createWorker(); final Runnable decoratedRun = RxJavaCommonPlugins.onSchedule(run); DisposeTask task = new DisposeTask(decoratedRun, w); w.schedule(task, delay, unit); return task; }
@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; }