@Override public <T> ListenableFuture<T> submit(Runnable task, T result) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, wrapTask(task), result, this); parentExecutor.execute(lft); return lft; }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentExecutor.execute(wrapTask(lft)); return lft; } }
@Override public <T> ListenableFuture<T> submit(Callable<T> task, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<T>(false, task, this); doSchedule(lft, 0, priority); return lft; }
@Override protected <V> ListenableScheduledFuture<V> schedule(Callable<V> callable, long delayInMillis) { ListenableRunnableFuture<V> taskFuture = new ListenableFutureTask<>(false, callable, pScheduler); Delayed d = ThreadlyInternalAccessor.doScheduleAndGetDelayed(pScheduler, taskFuture, taskPriority, delayInMillis); return new ScheduledFutureDelegate<>(taskFuture, d); }
public ListenableFuture<?> watch(Supplier<Boolean> p) { if (p.get()) { return ImmediateResultListenableFuture.NULL_RESULT; } else { ListenableRunnableFuture<?> result = new ListenableFutureTask<>(false, DoNothingRunnable.instance()); polls.add(new Pair<>(result, p)); signalToRun(); return result; } }
@Override protected ListenableScheduledFuture<?> schedule(Runnable task, long delayInMillis) { ListenableRunnableFuture<Void> taskFuture = new ListenableFutureTask<>(false, task, pScheduler); Delayed d = ThreadlyInternalAccessor.doScheduleAndGetDelayed(pScheduler, taskFuture, taskPriority, delayInMillis); return new ScheduledFutureDelegate<>(taskFuture, d); }
@Override protected ListenableScheduledFuture<?> schedule(Runnable task, long delayInMillis) { ListenableFutureTask<Void> lft = new ListenableFutureTask<>(false, task, singleThreadScheduler); Delayed d = ThreadlyInternalAccessor.doScheduleAndGetDelayed(singleThreadScheduler, lft, taskPriority, delayInMillis); return new ScheduledFutureDelegate<>(lft, d); }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); doExecute(lft); return lft; } }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); doExecute(lft); return lft; } }
@Override public <T> ListenableFuture<T> submit(Callable<T> task) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); executeOrQueue(lft, lft); return lft; }
@Override protected <V> ListenableScheduledFuture<V> schedule(Callable<V> callable, long delayInMillis) { ListenableFutureTask<V> lft = new ListenableFutureTask<>(false, callable, singleThreadScheduler); Delayed d = ThreadlyInternalAccessor.doScheduleAndGetDelayed(singleThreadScheduler, lft, taskPriority, delayInMillis); return new ScheduledFutureDelegate<>(lft, d); }
@Override protected ListenableScheduledFuture<?> schedule(Runnable task, long delayInMillis) { ListenableRunnableFuture<Void> taskFuture = new ListenableFutureTask<>(false, task, pScheduler); Delayed d = ThreadlyInternalAccessor.doScheduleAndGetDelayed(pScheduler, taskFuture, taskPriority, delayInMillis); return new ScheduledFutureDelegate<>(taskFuture, d); }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentScheduler.schedule(wrapTask(lft, false), delayInMs); return lft; }
@Override public <T> ListenableFuture<T> submit(Callable<T> task, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentScheduler.execute(wrapTask(lft, false), priority); return lft; }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); if (priority == null) { priority = defaultPriority; } ListenableRunnableFuture<T> rf = new ListenableFutureTask<>(false, task, this); doSchedule(rf, delayInMs, priority); return rf; }
@Override public <T> ListenableFuture<T> makeWithResult(T result) { ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, () -> result); lft.run(); return lft; } }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); parentScheduler.schedule(wrapTask(lft, false), delayInMs, priority); return lft; }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); ListenableFutureTask<T> lft = new ListenableFutureTask<T>(false, task, this); doSchedule(lft, delayInMs, priority); return lft; }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); ListenableFutureTask<T> lft = new ListenableFutureTask<>(false, task, this); doSchedule(lft, delayInMs); return lft; } }
@Override public <T> ListenableFuture<T> submitScheduled(Callable<T> task, long delayInMs, TaskPriority priority) { ArgumentVerifier.assertNotNull(task, "task"); ArgumentVerifier.assertNotNegative(delayInMs, "delayInMs"); ListenableFutureTask<T> lft = new ListenableFutureTask<T>(false, task, this); doSchedule(lft, delayInMs, priority); return lft; }