A common utility for building synchronization primitives.
When an async operation is blocked, it needs to register itself somewhere so that it can be
notified later on. The
WakerSet type helps with keeping track of such async operations and
notifying them when they may make progress.
A set holding wakers.