use of io.reactivex.rxjava3.disposables.Disposable in project RxJava by ReactiveX.
the class ExecutorSchedulerFairTest method runnableDisposedAsync2.
@Test
public void runnableDisposedAsync2() throws Exception {
final Scheduler s = Schedulers.from(executor, false, true);
Disposable d = s.scheduleDirect(Functions.EMPTY_RUNNABLE);
while (!d.isDisposed()) {
Thread.sleep(1);
}
}
use of io.reactivex.rxjava3.disposables.Disposable in project RxJava by ReactiveX.
the class ExecutorSchedulerFairTest method unwrapScheduleDirectTaskAfterDispose.
@Test
public void unwrapScheduleDirectTaskAfterDispose() {
Scheduler scheduler = getScheduler();
final CountDownLatch cdl = new CountDownLatch(1);
Runnable countDownRunnable = new Runnable() {
@Override
public void run() {
cdl.countDown();
}
};
Disposable disposable = scheduler.scheduleDirect(countDownRunnable, 100, TimeUnit.MILLISECONDS);
SchedulerRunnableIntrospection wrapper = (SchedulerRunnableIntrospection) disposable;
assertSame(countDownRunnable, wrapper.getWrappedRunnable());
disposable.dispose();
assertSame(Functions.EMPTY_RUNNABLE, wrapper.getWrappedRunnable());
}
use of io.reactivex.rxjava3.disposables.Disposable in project RxJava by ReactiveX.
the class ExecutorSchedulerTest method runnableDisposedAsync.
@Test
public void runnableDisposedAsync() throws Exception {
final Scheduler s = Schedulers.from(new Executor() {
@Override
public void execute(Runnable r) {
new Thread(r).start();
}
});
Disposable d = s.scheduleDirect(Functions.EMPTY_RUNNABLE);
while (!d.isDisposed()) {
Thread.sleep(1);
}
}
use of io.reactivex.rxjava3.disposables.Disposable in project RxJava by ReactiveX.
the class ExecutorSchedulerTest method runnableDisposedAsyncCrash.
@Test
public void runnableDisposedAsyncCrash() throws Exception {
final Scheduler s = Schedulers.from(new Executor() {
@Override
public void execute(Runnable r) {
new Thread(r).start();
}
});
Disposable d = s.scheduleDirect(new Runnable() {
@Override
public void run() {
throw new IllegalStateException();
}
});
while (!d.isDisposed()) {
Thread.sleep(1);
}
}
use of io.reactivex.rxjava3.disposables.Disposable in project RxJava by ReactiveX.
the class ExecutorSchedulerTest method reuseScheduledExecutorAsWorker.
@Test
public void reuseScheduledExecutorAsWorker() throws Exception {
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
Worker s = Schedulers.from(exec).createWorker();
assertFalse(s.isDisposed());
try {
final CountDownLatch cdl = new CountDownLatch(8);
Runnable r = new Runnable() {
@Override
public void run() {
cdl.countDown();
}
};
s.schedule(r);
s.schedule(r, 10, TimeUnit.MILLISECONDS);
Disposable d = s.schedulePeriodically(r, 10, 10, TimeUnit.MILLISECONDS);
try {
assertTrue(cdl.await(5, TimeUnit.SECONDS));
} finally {
d.dispose();
}
} finally {
s.dispose();
exec.shutdown();
}
assertTrue(s.isDisposed());
}
Aggregations