Search in sources :

Example 16 with CompositeDisposable

use of io.reactivex.disposables.CompositeDisposable in project RxJava by ReactiveX.

the class ScheduledRunnableTest method setFutureCancelRace.

@Test
public void setFutureCancelRace() {
    for (int i = 0; i < 500; i++) {
        CompositeDisposable set = new CompositeDisposable();
        final ScheduledRunnable run = new ScheduledRunnable(Functions.EMPTY_RUNNABLE, set);
        set.add(run);
        final FutureTask<Object> ft = new FutureTask<Object>(Functions.EMPTY_RUNNABLE, 0);
        Runnable r1 = new Runnable() {

            @Override
            public void run() {
                run.setFuture(ft);
            }
        };
        Runnable r2 = new Runnable() {

            @Override
            public void run() {
                run.dispose();
            }
        };
        TestHelper.race(r1, r2);
        assertEquals(0, set.size());
    }
}
Also used : FutureTask(java.util.concurrent.FutureTask) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) Test(org.junit.Test)

Example 17 with CompositeDisposable

use of io.reactivex.disposables.CompositeDisposable in project RxJava by ReactiveX.

the class ScheduledRunnableTest method dispose.

@Test
public void dispose() {
    CompositeDisposable set = new CompositeDisposable();
    ScheduledRunnable run = new ScheduledRunnable(Functions.EMPTY_RUNNABLE, set);
    set.add(run);
    assertFalse(run.isDisposed());
    set.dispose();
    assertTrue(run.isDisposed());
}
Also used : CompositeDisposable(io.reactivex.disposables.CompositeDisposable) Test(org.junit.Test)

Example 18 with CompositeDisposable

use of io.reactivex.disposables.CompositeDisposable in project RxJava by ReactiveX.

the class ScheduledRunnableTest method runDispose.

@Test
public void runDispose() {
    for (int i = 0; i < 500; i++) {
        CompositeDisposable set = new CompositeDisposable();
        final ScheduledRunnable run = new ScheduledRunnable(Functions.EMPTY_RUNNABLE, set);
        set.add(run);
        Runnable r1 = new Runnable() {

            @Override
            public void run() {
                run.call();
            }
        };
        Runnable r2 = new Runnable() {

            @Override
            public void run() {
                run.dispose();
            }
        };
        TestHelper.race(r1, r2);
        assertEquals(0, set.size());
    }
}
Also used : CompositeDisposable(io.reactivex.disposables.CompositeDisposable) Test(org.junit.Test)

Example 19 with CompositeDisposable

use of io.reactivex.disposables.CompositeDisposable in project RxJava by ReactiveX.

the class TrampolineSchedulerTest method testNestedTrampolineWithUnsubscribe.

@Test
public void testNestedTrampolineWithUnsubscribe() {
    final ArrayList<String> workDone = new ArrayList<String>();
    final CompositeDisposable workers = new CompositeDisposable();
    Worker worker = Schedulers.trampoline().createWorker();
    try {
        workers.add(worker);
        worker.schedule(new Runnable() {

            @Override
            public void run() {
                workers.add(doWorkOnNewTrampoline("A", workDone));
            }
        });
        final Worker worker2 = Schedulers.trampoline().createWorker();
        workers.add(worker2);
        worker2.schedule(new Runnable() {

            @Override
            public void run() {
                workers.add(doWorkOnNewTrampoline("B", workDone));
                // we unsubscribe worker2 ... it should not affect work scheduled on a separate Trampline.Worker
                worker2.dispose();
            }
        });
        assertEquals(6, workDone.size());
        assertEquals(Arrays.asList("A.1", "A.B.1", "A.B.2", "B.1", "B.B.1", "B.B.2"), workDone);
    } finally {
        workers.dispose();
    }
}
Also used : ArrayList(java.util.ArrayList) Worker(io.reactivex.Scheduler.Worker) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) Test(org.junit.Test)

Example 20 with CompositeDisposable

use of io.reactivex.disposables.CompositeDisposable in project mosby by sockeqwe.

the class MviBasePresenter method bindIntentActually.

@MainThread
private <I> Observable<I> bindIntentActually(@NonNull V view, @NonNull IntentRelayBinderPair<?> relayBinderPair) {
    if (view == null) {
        throw new NullPointerException("View is null. This is a Mosby internal bug. Please file an issue at https://github.com/sockeqwe/mosby/issues");
    }
    if (relayBinderPair == null) {
        throw new NullPointerException("IntentRelayBinderPair is null. This is a Mosby internal bug. Please file an issue at https://github.com/sockeqwe/mosby/issues");
    }
    PublishSubject<I> intentRelay = (PublishSubject<I>) relayBinderPair.intentRelaySubject;
    if (intentRelay == null) {
        throw new NullPointerException("IntentRelay from binderPair is null. This is a Mosby internal bug. Please file an issue at https://github.com/sockeqwe/mosby/issues");
    }
    ViewIntentBinder<V, I> intentBinder = (ViewIntentBinder<V, I>) relayBinderPair.intentBinder;
    if (intentBinder == null) {
        throw new NullPointerException(ViewIntentBinder.class.getSimpleName() + " is null. This is a Mosby internal bug. Please file an issue at https://github.com/sockeqwe/mosby/issues");
    }
    Observable<I> intent = intentBinder.bind(view);
    if (intent == null) {
        throw new NullPointerException("Intent Observable returned from Binder " + intentBinder + " is null");
    }
    if (intentDisposals == null) {
        intentDisposals = new CompositeDisposable();
    }
    intentDisposals.add(intent.subscribeWith(new DisposableIntentObserver<I>(intentRelay)));
    return intentRelay;
}
Also used : PublishSubject(io.reactivex.subjects.PublishSubject) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) MainThread(android.support.annotation.MainThread)

Aggregations

CompositeDisposable (io.reactivex.disposables.CompositeDisposable)25 Nullable (android.support.annotation.Nullable)11 TimeUnit (java.util.concurrent.TimeUnit)10 Flowable (io.reactivex.Flowable)9 Test (org.junit.Test)9 NonNull (android.support.annotation.NonNull)6 TextUtils (android.text.TextUtils)6 Task (bolts.Task)6 TaskCompletionSource (bolts.TaskCompletionSource)6 RCLog (chat.rocket.android.log.RCLog)6 RxWebSocket (chat.rocket.android_ddp.rx.RxWebSocket)6 RxWebSocketCallback (chat.rocket.android_ddp.rx.RxWebSocketCallback)6 TimeoutException (java.util.concurrent.TimeoutException)6 OkHttpClient (okhttp3.OkHttpClient)6 JSONArray (org.json.JSONArray)6 Bundle (android.os.Bundle)5 LayoutInflater (android.view.LayoutInflater)5 View (android.view.View)5 ViewGroup (android.view.ViewGroup)5 BindView (butterknife.BindView)5