class Async::List::Iterator

def self.each(list, &block)

def self.each(list, &block)
	return if list.empty?
	
	iterator = Iterator.new(list)
	
	iterator.each(&block)
ensure
	iterator&.remove!
end