private void processPromiseTimeouts() { notCompletedPromises.clear(); ReplayPromise currentPromise = inputPromiseQueue.poll(); try { while (currentPromise != null) { currentPromise.checkTimeout(timeSource.getTime()); if (!currentPromise.complete()) { notCompletedPromises.add(currentPromise); } currentPromise = inputPromiseQueue.poll(); } inputPromiseQueue.addAll(notCompletedPromises); } finally { notCompletedPromises.clear(); } }
@Override public <T> Promise<T> promise() { final ReplayPromise<T> promise = replayPromise(defaultTimeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
@Override public <T> Promise<T> promise(final Duration timeout) { final ReplayPromise<T> promise = replayPromise(timeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
@Override public <T> Promise<T> promise(final Duration timeout) { final ReplayPromise<T> promise = replayPromise(timeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
@Override public <T> Promise<T> promise() { final ReplayPromise<T> promise = replayPromise(defaultTimeout, timeSource.getTime()); return addPromiseToProcessingQueue(promise); }
private void processPromiseTimeouts() { notCompletedPromises.clear(); ReplayPromise currentPromise = inputPromiseQueue.poll(); try { while (currentPromise != null) { currentPromise.checkTimeout(timeSource.getTime()); if (!currentPromise.complete()) { notCompletedPromises.add(currentPromise); } currentPromise = inputPromiseQueue.poll(); } inputPromiseQueue.addAll(notCompletedPromises); } finally { notCompletedPromises.clear(); } }
@Override public <T> Promise<Void> any(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(anyReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public <T> Promise<Void> all(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(allReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public <T> Promise<Void> any(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(anyReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public Promise<Void> all(final Duration timeout, final Promise<?>... promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(allReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public Promise<Void> any(final Duration timeout, final Promise<?>... promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(anyReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public Promise<Void> all(final Duration timeout, final Promise<?>... promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(allReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public <T> Promise<Void> all(final Duration timeout, final List<Promise<T>> promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(allReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public Promise<Void> any(final Duration timeout, final Promise<?>... promises) { return addPromiseToProcessingQueue( wrapAllOrAnyAndMakeInvokeable(anyReplay(timeout, timeSource.getTime(), promises)) ); }
@Override public void process() { copyTaskQueues(); currentTime = timeSource.getTime(); processDeferRuns(); processRepeatingTasks(); processFireOnceTasks(); processAsyncPromisesReturns(); }
@Override public void process() { copyTaskQueues(); currentTime = timeSource.getTime(); processDeferRuns(); processRepeatingTasks(); processFireOnceTasks(); processAsyncPromisesReturns(); }