(*Waiter).Done

Description

Done is called when the item to wait for is done. There should be a one to
one correspondance between Add and Done. When the count drops to zero,
any callers blocked in Wait() are woken. If the count drops below zero,
it panics.