public void executeManagedTask(ManagedFutureTask task) { if (task instanceof ManagedScheduledFutureTask) { delayedExecute((ManagedScheduledFutureTask)task); } else { // should not happen schedule(task.executor, task, null, 0L, TimeUnit.NANOSECONDS); } }
public ScheduledFuture<?> scheduleAtFixedRate(AbstractManagedExecutorService executor, Runnable command, long initialDelay, long period, TimeUnit unit) { if (command == null || unit == null) throw new NullPointerException(); if (period <= 0) throw new IllegalArgumentException(); ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<Void> t = new ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<>( executor, command, null, triggerTime(initialDelay, unit), unit.toNanos(period)); delayedExecute(t); return t; }
public <V> ScheduledFuture<V> schedule(AbstractManagedExecutorService executor, Callable<V> callable, long delay, TimeUnit unit) { if (callable == null || unit == null) throw new NullPointerException(); ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<V> t = new ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<>( executor, callable, triggerTime(delay, unit)); delayedExecute(t); return t; }
public ScheduledFuture<?> scheduleWithFixedDelay(AbstractManagedExecutorService executor, Runnable command, long initialDelay, long delay, TimeUnit unit) { if (command == null || unit == null) throw new NullPointerException(); if (delay <= 0) throw new IllegalArgumentException(); ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<Void> t = new ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<>( executor, command, null, triggerTime(initialDelay, unit), unit.toNanos(-delay)); delayedExecute(t); return t; }
public <V> ScheduledFuture<V> schedule(AbstractManagedExecutorService executor, Runnable command, V result, long delay, TimeUnit unit) { if (command == null || unit == null) { throw new NullPointerException(); } ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<V> t = new ManagedScheduledThreadPoolExecutor.ManagedScheduledFutureTask<>( executor, command, result, triggerTime(delay, unit)); delayedExecute(t); return t; }