@Test /* (timeout = 8000) */
public void testSingleSourceManyIterators() throws InterruptedException {

    Observable<Long> o = Observable.interval(100, TimeUnit.MILLISECONDS);
    PublishSubject<Void> terminal = PublishSubject.create();
    BlockingObservable<Long> source = o.takeUntil(terminal).toBlocking();
    Iterable<Long> iter = source.next();
    for (int j = 0; j < 3; j++) {
        BlockingOperatorNext.NextIterator<Long> it = (BlockingOperatorNext.NextIterator<Long>)iter.iterator();
        for (long i = 0; i < 10; i++) {
            Assert.assertEquals(true, it.hasNext());
            Assert.assertEquals(j + "th iteration next", Long.valueOf(i), it.next());
        }
        terminal.onNext(null);
    }
}