Expand description
§embassy-sync
An Embassy project.
Synchronization primitives and data structures with async support:
Channel- A Multiple Producer Multiple Consumer (MPMC) channel. Each message is only received by a single consumer.PriorityChannel- A Multiple Producer Multiple Consumer (MPMC) channel. Each message is only received by a single consumer. Higher priority items are shifted to the front of the channel.PubSubChannel- A broadcast channel (publish-subscribe) channel. Each message is received by all consumers.Signal- Signalling latest value to a single consumer.Watch- Signalling latest value to multiple consumers.Mutex- 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.LazyLock- A value which is initialized on the first access
§Interoperability
Futures from this crate can run on any executor.
Modules§
- blocking_
mutex  - Blocking mutex.
 - channel
 - A queue for sending values between asynchronous tasks.
 - lazy_
lock  - Synchronization primitive for initializing a value once, allowing others to get a reference to the value.
 - mutex
 - Async mutex.
 - once_
lock  - Synchronization primitive for initializing a value once, allowing others to await a reference to the value.
 - pipe
 - Async byte stream pipe.
 - priority_
channel  - A queue for sending values between asynchronous tasks.
 - pubsub
 - Implementation of PubSubChannel, a queue where published messages get received by all subscribers.
 - semaphore
 - A synchronization primitive for controlling access to a pool of resources.
 - signal
 - A synchronization primitive for passing the latest value to a task.
 - waitqueue
 - Async low-level wait queues
 - watch
 - A synchronization primitive for passing the latest value to multiple receivers.
 - zerocopy_
channel  - A zero-copy queue for sending values between asynchronous tasks.