embassy/embassy-sync
Nathan Perry 893b8d79e8 embassy_sync/pubsub: fix PubSubBehavior visibility
https://github.com/embassy-rs/embassy/pull/2969 appears to have broken
direct `publish_immediate()` on `pubsub::Channel`, as it functionally
made `PubSubBehavior` private and didn't delegate this method to the new
(private) `SealedPubSubBehavior`.

This change moves `publish_immediate`, `capacity`, and `is_full` from
`SealedPubSubBehavior` to `PubSubBehavior` in order to restore them to
`pub` visibility.
2024-09-19 08:44:45 -04:00
..
src embassy_sync/pubsub: fix PubSubBehavior visibility 2024-09-19 08:44:45 -04:00
build_common.rs Update to Rust 1.80, make check-cfg unconditional. 2024-07-25 15:53:00 +02:00
build.rs Copy build_common.rs into each crate, to make cargo publish happy 2024-05-31 08:07:51 +02:00
Cargo.toml Prepare for embassy-sync 0.6.0 release 2024-05-29 12:09:55 +02:00
CHANGELOG.md embassy-sync: add LazyLock 2024-07-29 11:04:59 +02:00
README.md Fix link to PriorityChannel 2024-08-18 10:36:04 +02:00

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.
  • Mutex - Mutex for synchronizing state between asynchronous tasks.
  • Pipe - Byte stream implementing embedded_io traits.
  • WakerRegistration - Utility to register and wake a Waker.
  • AtomicWaker - A variant of WakerRegistration accessible using a non-mut API.
  • MultiWakerRegistration - Utility registering and waking multiple Waker's.
  • LazyLock - A value which is initialized on the first access

Interoperability

Futures from this crate can run on any executor.