@Override public Disposable call() { return Disposables.fromRunnable(unsubscribe); } };
/** * Returns a new, non-disposed Disposable instance. * @return a new, non-disposed Disposable instance */ @NonNull public static Disposable empty() { return fromRunnable(Functions.EMPTY_RUNNABLE); }
@Override public Disposable call() { return Disposables.fromRunnable(unsubscribe); } };
@Override public Disposable call() { return Disposables.fromRunnable(unsubscribe); } };
@Override public Disposable call() { return Disposables.fromRunnable(unsubscribe); } };
/** * Returns a new, non-disposed Disposable instance. * @return a new, non-disposed Disposable instance */ @NonNull public static Disposable empty() { return fromRunnable(Functions.EMPTY_RUNNABLE); }
/** * Returns a new, non-disposed Disposable instance. * @return a new, non-disposed Disposable instance */ @NonNull public static Disposable empty() { return fromRunnable(Functions.EMPTY_RUNNABLE); }
private Disposable disconnect(final CompositeDisposable current) { return Disposables.fromRunnable(new DisposeTask(current)); }
private Disposable disconnect(final CompositeDisposable current) { return Disposables.fromRunnable(new DisposeTask(current)); }
private Disposable disconnect(final CompositeDisposable current) { return Disposables.fromRunnable(new DisposeTask(current)); }
@NonNull @Override public Disposable schedule(@NonNull Runnable run, long delayTime, @NonNull TimeUnit unit) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, time + unit.toNanos(delayTime), run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, 0, run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@Override public void subscribe(Observer<? super Integer> observer) { subscriptionCount.incrementAndGet(); observer.onSubscribe(Disposables.fromRunnable(new Runnable() { @Override public void run() { unsubscriptionCount.incrementAndGet(); } })); } });
@NonNull @Override public Disposable schedule(@NonNull Runnable run, long delayTime, @NonNull TimeUnit unit) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, time + unit.toNanos(delayTime), run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@Override public void subscribe(Observer<? super String> s) { subsCount.incrementAndGet(); s.onSubscribe(Disposables.fromRunnable(new Runnable() { @Override public void run() { subsCount.decrementAndGet(); } })); } };
@NonNull @Override public Disposable schedule(@NonNull Runnable run, long delayTime, @NonNull TimeUnit unit) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, time + unit.toNanos(delayTime), run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, 0, run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@NonNull @Override public Disposable schedule(@NonNull Runnable run) { if (disposed) { return REJECTED; } final TimedRunnable timedAction = new TimedRunnable(this, 0, run, counter++); queue.add(timedAction); return Disposables.fromRunnable(new QueueRemove(timedAction)); }
@Test public void testUnsubscribeOnlyOnce() { Runnable dispose = mock(Runnable.class); Disposable subscription = Disposables.fromRunnable(dispose); subscription.dispose(); subscription.dispose(); verify(dispose, times(1)).run(); }
@Test public void testUnsubscribeIdempotence() { final AtomicInteger counter = new AtomicInteger(); CompositeDisposable s = new CompositeDisposable(); s.add(Disposables.fromRunnable(new Runnable() { @Override public void run() { counter.incrementAndGet(); } })); s.dispose(); s.dispose(); s.dispose(); // we should have only disposed once assertEquals(1, counter.get()); }