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 implementing- embedded_iotraits.
- WakerRegistration- Utility to register and wake a- Waker.
- AtomicWaker- A variant of- WakerRegistrationaccessible using a non-mut API.
- MultiWakerRegistration- Utility registering and waking multiple- Waker's.