void doTerminate() { Runnable r = onTerminate.get(); if (r != null && onTerminate.compareAndSet(r, null)) { r.run(); } }
private void processPendingCommands() { Iterator<Runnable> iterator = pendingCommands.iterator(); while (iterator.hasNext()) { Runnable command = iterator.next(); command.run(); iterator.remove(); } }
@Override public void run() { runner = Thread.currentThread(); try { decoratedRun.run(); } finally { dispose(); runner = null; } }
@Override public void execute(Runnable r) { r.run(); } }, true);
@Override public Void call() throws Exception { runner = Thread.currentThread(); try { runnable.run(); } finally { lazySet(FINISHED); runner = null; } return null; } }
@Override public void execute(Runnable r) { r.run(); } }, true);
public void executeOne() { Runnable r = queue.poll(); if (r != null) { r.run(); } } public void executeAll() {
public void executeOne() { Runnable r = queue.poll(); if (r != null) { r.run(); } } public void executeAll() {
public void executeAll() { Runnable r; while ((r = queue.poll()) != null) { r.run(); } } }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { run.run(); return DISPOSED; }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run) { run.run(); return DISPOSED; }
@NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit) { try { unit.sleep(delay); RxJavaPlugins.onSchedule(run).run(); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); RxJavaPlugins.onError(ex); } return EmptyDisposable.INSTANCE; }
@Override public Disposable schedule(Runnable run, long delay, TimeUnit unit) { run.run(); return Disposables.empty(); } }
@Override public void run() { if (!disposed) { try { run.run(); } catch (Throwable ex) { Exceptions.throwIfFatal(ex); worker.dispose(); throw ExceptionHelper.wrapOrThrow(ex); } } }
@NonNull @Override public Disposable schedule(@NonNull Runnable action) { action.run(); return mockDisposable; // this subscription is returned but discarded }
@Test public void disposedUpfront() { Runnable run = mock(Runnable.class); Maybe.fromRunnable(run) .test(true) .assertEmpty(); verify(run, never()).run(); }
@NonNull @Override public Disposable schedule(@NonNull Runnable action, long delayTime, @NonNull TimeUnit unit) { action.run(); return mockDisposable; }