95 Commits

Author SHA1 Message Date
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
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
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
368893c9cb Emit cargo:rustc-check-cfg instructions from build.rs 2024-05-30 18:28:29 +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
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
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
Dario Nieuwenhuis
fe0b21e21e Remove nightly autodetects. 2024-01-10 18:32:14 +01:00
Rasmus Melchior Jacobsen
13c107e815 Put waiting state back if any 2023-12-20 13:09:16 +01:00
Rasmus Melchior Jacobsen
f9d0daad80 feat(embassy-sync): Add try_take() to signal 2023-12-20 08:37:15 +01:00
Dario Nieuwenhuis
c6989dfbca Remove nightly and unstable-traits features in preparation for 1.75. 2023-11-29 17:26:33 +01:00
Scott Mabin
454828accb revert module changes, reexport heapless relevant items 2023-11-20 11:28:31 +00:00
Scott Mabin
5a60024af7 docs 2023-11-18 15:09:41 +00:00
Scott Mabin
f482a105b8 more clean up, refactor channel into module to share code 2023-11-18 15:01:12 +00:00
Scott Mabin
7589b5e13e reduce duplication further by sharing Dynamic sender/receiver 2023-11-18 14:56:29 +00:00
Scott Mabin
2efa73f431 docs and simple test for priority 2023-11-18 14:37:15 +00:00
Scott Mabin
270ec324b0 Reduce duplication, fix tests 2023-11-18 14:31:09 +00:00
Scott Mabin
ca0d02933b Priority channel using binary heap 2023-11-18 14:21:43 +00:00
Dániel Buga
ad07ea0290 Re-add impl_trait_projections 2023-10-30 19:10:45 +01:00
Dario Nieuwenhuis
eb12114345 Remove impl_trait_projections. 2023-10-02 14:00:49 +02:00
Dario Nieuwenhuis
615882ebd6 Rename zero_copy -> zerocopy. 2023-09-04 22:16:28 +02:00