Nathan Perry
89bad07e81
embassy_sync: Sink
adapter for pubsub::Pub
...
Corresponding to the `Stream` impl for `pubsub::Sub`. Notable
difference is that we need a separate adapter type to store
the pending item, i.e. we can't `impl Sink for Pub` directly.
Instead a method `Pub::sink(&self)` is exposed, which
constructs a `PubSink`.
2024-09-20 01:58:03 -04:00
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
Rafael Bachmann
a91de8d6b0
Fix link to PriorityChannel
...
Fix : #2899
2024-08-18 10:36:04 +02:00
wanglei
05562b92af
embassy-sync: more unit-test for LazyLock
...
Signed-off-by: wanglei <wllenyj@gmail.com>
2024-07-31 10:32:44 +08:00
wanglei
93696c912e
embassy-sync: fix the data of LazyLock never drop
...
Using `union` can save more space.
And the `MaybeUninit<T>` will never drop the T, when dropping the
`MaybeUninit<T>`. Fixed it.
Signed-off-by: wanglei <wllenyj@gmail.com>
2024-07-31 10:31:56 +08:00
Samuel Tardieu
05e0f12846
embassy-sync: add LazyLock
...
`LazyLock` is inspired by Rust 1.80.0's `std::sync::LazyLock` type.
2024-07-29 11:04:59 +02:00
Dario Nieuwenhuis
2d678d6956
Update to Rust 1.80, make check-cfg unconditional.
2024-07-25 15:53:00 +02:00
Tarun Singh
a716a3f006
Reduced define for 'unreachable!' to a single macro rule
2024-07-17 17:05:52 -04:00
Dario Nieuwenhuis
6a4ac5bd60
Add collapse_debuginfo to fmt.rs macros.
...
This makes location info in defmt logs point to the code calling the macro,
instead of always to fmt.rs as before. Fix works with nightlies
starting with today's, and stable 1.81+.
2024-06-17 01:38:57 +02:00
Dario Nieuwenhuis
4d9115b3fb
Update stable to Rust 1.79.
2024-06-13 20:40:04 +02:00
Dario Nieuwenhuis
3e2b015dc4
Merge pull request #3054 from dvdsk/clonable-errors
...
Add Clone and Copy to Error types
2024-06-09 09:47:26 +00:00
dvdsk
871fe3a549
Add Clone and Copy to Error types
...
None of them are `non-exaustative`, they are all small enough to be copy
(I estimate none are larger than 4 bytes).
2024-06-06 23:19:07 +02:00
Jesse Stuart
3e85fb4f52
embassy-sync: remove T: Send for Signal<M, T>
2024-06-05 20:22:48 -04:00
Jan Špaček
bfb380e8ca
Copy build_common.rs into each crate, to make cargo publish happy
2024-05-31 08:07:51 +02:00
Jan Špaček
368893c9cb
Emit cargo:rustc-check-cfg instructions from build.rs
2024-05-30 18:28:29 +02:00
Ulf Lilleengen
52965ae96a
remove duplicate entry
2024-05-29 12:38:33 +02:00
Ulf Lilleengen
d040dfaff9
add missing entries to changelog
2024-05-29 12:21:41 +02:00
Ulf Lilleengen
cf0d227cca
Prepare for embassy-sync 0.6.0 release
2024-05-29 12:09:55 +02:00
Oliver Rockstedt
bbeba7f014
embassy-sync: Add clear function to all channels
2024-05-22 14:54:09 +02:00
Oliver Rockstedt
aee9d5902a
embassy-sync: fixed some documentation typos
2024-05-22 00:54:52 +02:00
Oliver Rockstedt
73e523ab14
embassy-sync: fixed some clippy warnings
2024-05-21 22:59:39 +02:00
Dion Dokter
5cffaf323b
Add little migration sentence to changelog
2024-05-20 15:52:32 +02:00
Dion Dokter
07f2240a19
Add to changelog
2024-05-20 15:38:28 +02:00
Dion Dokter
a76082b104
Expose new length functions in the subs and pubs
2024-05-20 15:34:03 +02:00
Dion Dokter
2a4a714060
Make behaviour trait sealed
2024-05-20 15:18:10 +02:00
Oliver Rockstedt
ab89993451
embassy-sync: Add capacity, free_capacity, len, is_empty and is_full functions to PubSubChannel
2024-05-18 14:01:23 +02:00
Oliver Rockstedt
f361c2e81c
embassy-sync: Add capacity, free_capacity, len, is_empty and is_full functions to PriorityChannel
2024-05-18 13:48:40 +02:00
Oliver Rockstedt
3d9b502c7a
embassy-sync: Add capacity and free_capacity functions to Channel
2024-05-18 13:37:51 +02:00
QWS
fe68308958
Fix: typo
2024-05-10 22:22:24 +08:00
W Etheredge
cc4ff9ef2d
embassy_sync::Mutex: Implement traits to match std
2024-05-05 23:10:00 -05:00
nerwalt
30dcc88093
Adding ready_to_receive to Channel and Receiver
...
Adding ReceiveReadyFuture
2024-04-19 12:16:12 -06:00
Caio
86706bdc14
Add map method
2024-04-14 19:35:59 -03:00
Oliver Rockstedt
fa05256f05
embassy-sync: Add len, is_empty and is_full functions to Channel.
2024-04-08 00:40:42 +02:00
Alex Moon
c9acebf783
Fix FairSemaphore
bugs
...
- `acquire` and `acquire_all` futures were `!Send`, even for `M: RawMutex + Send` due to the captured `Cell`.
- If multiple `acquire` tasks were queued, waking the first would not wake the second, even if there were permits remaining after the first `acquire` completed.
2024-04-03 19:13:57 -04:00
Alex Moon
f8a6007e1c
Semaphore synchronization primitive
...
This provides both a "greedy" and "fair" async semaphore implementation.
2024-03-30 22:25:41 -04:00
Alexandru Radovici
a38cbbdc59
fix typo
2024-03-30 22:36:30 +02:00
Dario Nieuwenhuis
c2aa95016a
Merge pull request #2727 from de-vri-es/forward-std-feature-to-critical-section
...
Forward the "std" feature to the critical-section crate in embassy-sync.
2024-03-22 11:34:45 +00:00
Maarten de Vries
a85e9c6e68
Forward the "std" feature to the critical-section crate in embassy-sync.
...
Otherwise, using embassy-sync in unit tests will result in linker errors
when using the CriticalSectionRawMutex.
2024-03-22 12:29:01 +01:00
Ulf Lilleengen
3668ace35c
Merge pull request #2651 from peterkrull/once_lock
...
Add `OnceLock` sync primitive
2024-03-22 08:40:27 +00:00
Dario Nieuwenhuis
3d842dac85
fmt: disable "unused" warnings.
2024-03-20 14:53:19 +01:00
Noah Bliss
d06dbf332b
Doc update: signaled does not clear signal
...
signaled does not clear signal (doc update)
2024-03-20 03:19:01 +00:00
Ulf Lilleengen
c0d91600ea
rustfmt
2024-03-12 15:37:53 +01:00
Ulf Lilleengen
8bb1fe1f65
Add conversion into dyn variants for channel futures
2024-03-12 15:27:52 +01:00
Dario Nieuwenhuis
60567b72fb
Merge pull request #2660 from embassy-rs/zerocopy-docs
...
docs: clarify capabilities of zerocopy channel
2024-03-04 17:52:03 +00:00
Ulf Lilleengen
2a25757377
docs: clarify capabilities of zerocopy channel
2024-03-04 18:36:34 +01:00
Peter Krull
245e7d3bc2
This one is for ci/rustfmt
2024-03-03 15:43:01 +01:00
Peter Krull
4bbcc2a7fb
Add OnceLock sync primitive
2024-03-03 15:35:52 +01:00
Peter Krull
69d37503c2
Add constructor for dynamic channel
2024-03-02 13:13:26 +01:00
Stefan Gehr
b9d0069671
correct spelling of the word "receive"
2024-02-03 14:56:31 +01:00
Sam Lakerveld
15e9b60abb
sync/pipe: be able to be zero-initialized
2024-02-01 13:47:07 +01:00