class Async::List

def remove!(node)

def remove!(node)
ad.tail = node.tail
il.head = node.head
marks the node as being removed, and causes remove to fail if called a 2nd time.
ad = nil
tail = nil
removed(node)