final void advanceTime(long timeShiftInNanoseconds) { Operators.addCap(DEFERRED_NANO_TIME, this, timeShiftInNanoseconds); drain(); }
@Override public Disposable schedule(Runnable run) { if (shutdown) { throw Exceptions.failWithRejected(); } final TimedRunnable timedTask = new TimedRunnable(this, 0, run, COUNTER.getAndIncrement(VirtualTimeScheduler.this)); queue.add(timedTask); drain(); return () -> { queue.remove(timedTask); drain(); }; }
@Override public Disposable schedule(Runnable run, long delayTime, TimeUnit unit) { if (shutdown) { throw Exceptions.failWithRejected(); } final TimedRunnable timedTask = new TimedRunnable(this, nanoTime + unit.toNanos(delayTime), run, COUNTER.getAndIncrement(VirtualTimeScheduler.this)); queue.add(timedTask); drain(); return () -> { queue.remove(timedTask); drain(); }; }
final void advanceTime(long timeShiftInNanoseconds) { Operators.addCap(DEFERRED_NANO_TIME, this, timeShiftInNanoseconds); drain(); }
@Override public Disposable schedule(Runnable run) { if (shutdown) { throw Exceptions.failWithRejected(); } final TimedRunnable timedTask = new TimedRunnable(this, 0, run, COUNTER.getAndIncrement(VirtualTimeScheduler.this)); queue.add(timedTask); drain(); return () -> { queue.remove(timedTask); drain(); }; }
@Override public Disposable schedule(Runnable run, long delayTime, TimeUnit unit) { if (shutdown) { throw Exceptions.failWithRejected(); } final TimedRunnable timedTask = new TimedRunnable(this, nanoTime + unit.toNanos(delayTime), run, COUNTER.getAndIncrement(VirtualTimeScheduler.this)); queue.add(timedTask); drain(); return () -> { queue.remove(timedTask); drain(); }; }