99a94f1d50
Update version of critical-section
2021-09-13 17:05:17 +02:00
e24528051b
Add WASM support for executor
...
* Adds an executor for WASM runtimes based on wasm_bindgen.
* Add time driver based on JS time handling.
* Add example that can run in browser locally.
* Update to critical-section version that supports 'std' flag
2021-09-13 16:42:39 +02:00
70e5877d68
embassy/channel: switch to use MutexKind
2021-09-13 00:08:41 +02:00
5be5bdfd20
embassy/blocking_mutex: add MutexKind to allow writing code generic over mutex kinds.
2021-09-12 23:28:00 +02:00
e1f9dd1170
embassy/channel: remove unused receiver_consumed
2021-09-11 02:58:41 +02:00
b78f4695c4
embassy/channel: use heapless::Deque.
2021-09-11 02:49:16 +02:00
ead987245d
embassy: Refactor module structure to remove kitchen-sink util
.
2021-09-11 02:35:35 +02:00
f2623e7e9b
Update lots of deps
2021-09-11 01:35:23 +02:00
11d2b0cdc1
Remove more unused features.
2021-09-03 17:13:54 +02:00
de016e8456
Remove trait_alias, allow(incomplete_features).
...
trait_alias seems unused. no idea why it's there.
2021-09-03 17:00:58 +02:00
5f04d6e6c5
Fix embassy::main macros for std target
2021-09-02 14:45:54 +02:00
297de612e5
Improve executor naming. Add docs.
2021-08-31 23:59:28 +02:00
c4b9c8ac87
std: fold into embassy core, add non-hacky time driver.
2021-08-25 21:06:27 +02:00
7c0990ad1e
time: allow storing state inside the driver struct.
2021-08-25 21:06:27 +02:00
55b2d7b524
io: move std stuff to own module
2021-08-25 21:06:27 +02:00
503be49417
Document embassy::time
2021-08-25 21:06:27 +02:00
ae179d49af
executor: improve module structure
2021-08-25 00:20:29 +02:00
7ca745a5c0
Refactor to allow defmt to intern strings.
2021-08-22 00:11:19 +01:00
4d3c07f71b
Fix fmt
2021-08-21 22:38:02 +01:00
170121cdf6
Add defmt support for mpsc errors.
2021-08-21 22:36:23 +01:00
a3b56a3764
embassy-macros: Use defmt::unwrap!
when spawning embassy::main
...
But only when `defmt` feature is enabled.
2021-08-05 22:40:12 +02:00
36402b5487
Merge pull request #348 from embassy-rs/remove-portal
...
Remove Portal. Fixes #32
2021-08-05 22:31:06 +02:00
b1240217bd
Remove Portal. Fixes #32
...
Portal is very niche, I've only ever used it in `nrf-softdevice` and in a very particular case:
sending event raw-pointers across tasks but "synchronously", because the destination task must process
it now, so it's not deallocated. For most usecases, Signal or channels is enough.
It's unclear to me whether it can be made ub-free. It has problems with reentrancy. It's also not leak-safe, which is quite annoying.
So, remove it for now. We can always add it back later.
2021-08-05 22:24:03 +02:00
aaa0d1419c
util: fix unsoundness when dropping ThreadModeMutex outside thread mode.
...
Fixes #283
2021-08-05 22:20:45 +02:00
0ea6a2d890
time: replace dyn clock/alarm with a global Driver trait
2021-08-05 19:14:09 +02:00
07d4b196f7
Update nightly, remove removed features.
2021-08-04 19:48:14 +02:00
250f1cd0a5
util: fix unused return warning
2021-08-04 19:38:05 +02:00
6043383008
Remove version pinning workaround.
2021-08-02 20:47:30 +02:00
f2c2ad06ca
Use lifetime to ensure only a single future is created at a time
2021-08-02 12:42:06 +02:00
4d8d8e386f
Make RecvFuture sync
...
RecvFuture always locks the underlying Channel when polled.
2021-08-02 11:18:59 +02:00
332bc44b8c
Expose SendFuture and RecvFuture types
...
Having these types available makes it easier to store futures for later
use as the named types can be embedded in other types at compile time.
2021-08-02 10:45:50 +02:00
c8a48d726a
Merge pull request #277 from Liamolucko/fix-peripheral-ub
...
extras: Fix UB in `Peripheral`
2021-07-29 13:08:30 +02:00
1b7ad7080e
Add Send/Sync
bounds to PeripheralState
2021-07-24 12:53:57 +10:00
72d6f79ec7
Feature no longer required given 1.55
2021-07-15 12:31:53 +10:00
3778f55d80
Provides a cleaner construction of the channel with the common "new" naming
2021-07-15 12:31:53 +10:00
6f78527aeb
Partial borrow for receiver to enforce compile-time mpssc
2021-07-15 12:31:53 +10:00
076198a3b9
Small tidy up
2021-07-15 12:31:53 +10:00
d711e8a82c
Eliminates unsoundness by using an UnsafeCell for sharing the channel
2021-07-15 12:31:53 +10:00
babee7f32a
Tighten sender/receiver bounds
2021-07-15 12:31:53 +10:00
d86892ca56
Removed the closing state as it was not required
2021-07-15 12:31:53 +10:00
a247fa4f2c
Explicitly drop non consumed items
2021-07-15 12:31:53 +10:00
7c723d2bfd
Removed UB code around the send future
2021-07-15 12:31:52 +10:00
baab52d40c
Avoid a race condition by reducing the locks to one
2021-07-15 12:31:52 +10:00
5a5795ef2b
NoopMutex does not require an UnsafeCell
2021-07-15 12:31:52 +10:00
9b5f2e465b
Tidying
2021-07-15 12:31:52 +10:00
108cffcba0
Migrated to the waker registration functionality for Embassy specific optimisations
2021-07-15 12:31:52 +10:00
dcd0c38109
Return a new future each time recv is called
2021-07-15 12:31:52 +10:00
f159beec1c
Use of a NoopMutex
2021-07-15 12:31:52 +10:00
5f87c7808c
Remove the cell and trait
...
At the expense of exposing the channel types again. We do this as we want to avoid using dyn traits given their overhead for embedded environments.
2021-07-15 12:31:52 +10:00
56b3e927fe
ChannelState should be private
2021-07-15 12:31:52 +10:00