This makes behavior consistent with `WakerRegistration`. It allows canceling `wait` in one task and then calling `wait` in another. If two tasks are `wait`ing concurrently the signal will be received by only one of them, randomly.
embassy-sync
Synchronization primitives and data structures with an async API:
Channel- A Multiple Producer Multiple Consumer (MPMC) channel. Each message is only received by a single consumer.PubSubChannel- A broadcast channel (publish-subscribe) channel. Each message is received by all consumers.Signal- Signalling latest value to a single consumer.Mutex- A Mutex for synchronizing state between asynchronous tasks.Pipe- Byte stream implementingembedded_iotraits.WakerRegistration- Utility to register and wake aWaker.AtomicWaker- A variant ofWakerRegistrationaccessible using a non-mut API.MultiWakerRegistration- Utility registering and waking multipleWaker's.