class Async::List

def each(&block)

def each(&block)
	return to_enum unless block_given?
	
	current = self
	while node = current.tail
		yield node
		
		# If the node has deleted itself or any subsequent node, it will no longer be the next node, so don't use it for continued traversal:
		if current.tail.equal?(node)
			current = node
		end
	end
end