fixed the iterators to go not block when an empty list is found

empty lists are totally legit since when all the keys are removed
from a list, the list is still preserved for further usage

in the iterators the problem was that only the 'rc' variable was checked
but that was supposed to be set by an eventually called callback,
if not called because no items were found in the list, 'rc' would have been 0
and the iterator would have stopped as if the callback asked to do so