class FDB::TransactionRead
def each
def each bsel = @bsel esel = @esel limit = @limit iteration = 1 # the first read was fired off when the RangeEnum was initialized future = @future done = false while !done if future kvs, count, more = future.wait index = 0 future = nil return if count.zero? end result = kvs[index] index += 1 if index == count if more.zero? || limit == count done = true else iteration += 1 if limit.nonzero? limit -= count end if @reverse.nonzero? esel = KeySelector.first_greater_or_equal(kvs.last.key) else bsel = KeySelector.first_greater_than(kvs.last.key) end future = @get_range.call(bsel, esel, limit, @mode, iteration, @reverse) end end yield result end end