ScheduledObserver should be reimplemented the way that it guaranties ordering of the events.
Right now this test prints values in different ordering.
@Test
public void testToIteratorObserveOn() {
Observable<String> obs = Observable.from("one", "two", "three", "four");
Iterable<String> it = obs.observeOn(Schedulers.threadPoolForComputation()).toIterable();
for (String s : it) {
System.out.println(s);
}
}