The description is confusing. I think for `BlockingObservable.next()`, the `next()` of `Iterator`always returns the next incoming value. For `BlockingObservable.latest()`, the `next()` of `Iterator` will first check if there is an untaken value. If so, return the untaken value and clear it. If not, block and wait for the next incoming value.