Dániel Buga
02d2c06b23
Release embassy-time 0.1.4
2023-10-12 18:14:33 +02:00
Hailey Somerville
b9d4b18f14
update UninitCell::write call in arch::wasm too
2023-09-14 13:59:24 +10:00
Hailey Somerville
3a1ed823f8
write to TaskStorage::future via inline(never) fn to encourage RVO
2023-09-14 13:42:11 +10:00
Dario Nieuwenhuis
5e613d9abb
Sync all fmt.rs files.
2023-08-30 01:37:18 +02:00
Jesse Braham
1f63bf4153
Release embassy-time v0.1.3
2023-08-28 08:00:18 -07:00
Dario Nieuwenhuis
ca738d6c99
Merge pull request #1826 from bugadani/warn
...
Avoid dead code warning
2023-08-26 11:05:03 +00:00
Dániel Buga
54e2e17520
Avoid dead code warning
2023-08-26 12:53:39 +02:00
Dániel Buga
f8299d10f7
Prepare executor and macros for release ( #1825 )
...
* Set release date, bump macros version
* Add pool_size change to changelog
2023-08-25 23:32:00 +02:00
Dániel Buga
a2c718f61c
Bump executor crate version to 0.3.0
2023-08-23 20:34:37 +02:00
Dániel Buga
0a73c84df0
Make AvailableTask public, deduplicate
2023-08-21 18:12:41 +02:00
Dániel Buga
890f29ccfe
Update docs
2023-08-14 17:57:01 +02:00
Dániel Buga
e4f3979ec8
Don't check context if only thread-mode is enabled
2023-08-14 16:46:02 +02:00
Dániel Buga
07c3600127
Hide Pender
2023-08-14 16:35:48 +02:00
Dániel Buga
da4f15d944
Fix fn name
2023-08-14 16:34:10 +02:00
Dániel Buga
9954346143
Remove interrupt executor, remove PenderContext
2023-08-14 16:04:11 +02:00
Dániel Buga
3a51e2d9ca
Make PenderContext actually pointer-size
2023-08-14 15:45:43 +02:00
Dániel Buga
986a63ebb8
Remove the non-specific thread-mode executor
2023-08-14 15:41:53 +02:00
Dániel Buga
4c4b12c307
Make PenderContext opaque
2023-08-14 15:16:40 +02:00
Dániel Buga
f6007869bf
Remove the Pender enum
2023-08-14 09:00:08 +02:00
Dániel Buga
454a7cbf4c
Remove pender-callback
2023-08-14 08:32:26 +02:00
Dániel Buga
ec6bd27df6
Remove thread-context feature
2023-08-14 08:22:22 +02:00
Dániel Buga
6ab0d71d92
Tweak identifiers and comments
2023-08-12 22:42:50 +02:00
Dániel Buga
d5e66f6f87
Lift thread-context feature restrictions
2023-08-12 22:20:11 +02:00
Dániel Buga
bce250bbdc
Remove unnecessary !Send markers
2023-08-12 22:17:03 +02:00
Dániel Buga
fbf50cdae8
Remove Pender wrapper
2023-08-12 22:13:08 +02:00
Dániel Buga
675b7fb605
POC: allow custom executors
2023-08-12 18:29:56 +02:00
Dániel Buga
baef856206
Bump version
2023-08-10 23:20:31 +02:00
Dániel Buga
858d520882
Executor: Add changelog
2023-08-10 23:15:02 +02:00
loris
66faba2df7
add wake_task_no_pend for expired timer enqueue inside run_queue
2023-08-05 21:04:51 +02:00
Dániel Buga
a2501bd5c1
Allow clearing finished task from timer queue
2023-07-12 16:56:02 +02:00
Dario Nieuwenhuis
d137286981
Release embassy-time v0.1.2
2023-07-06 01:29:44 +02:00
Kaspar Schleiser
54fc933932
embassy-executor: introduce InterruptExecutor::spawner()
2023-06-16 12:59:23 +02:00
Dario Nieuwenhuis
1d8321b821
Use make_static! from static-cell v1.1
2023-06-01 01:42:34 +02:00
Dániel Buga
5fe36b6bb0
Work around xtensa deadlock, take 2
2023-05-13 15:04:02 +02:00
Ulf Lilleengen
28a3454846
add changelog
2023-04-27 20:19:07 +02:00
Ulf Lilleengen
42a8f1671d
Bump versions preparing for -macros and -executor release
2023-04-27 11:54:22 +02:00
Grant Miller
6a6c673c5f
Executor: Replace unnecessary atomics in runqueue
2023-04-13 14:21:41 -05:00
Roy Buitenhuis
32836129f6
re-export main_riscv macro as main for riscv arch.
2023-04-11 14:59:38 +02:00
Dario Nieuwenhuis
e2516bba09
executor: fix doc features.
2023-04-06 22:39:36 +02:00
Grant Miller
8290236ed6
executor: Replace unsound critical sections with atomics
2023-04-05 13:23:12 -05:00
Dario Nieuwenhuis
d3c4e4a20a
executor: add Pender, rework Cargo features.
...
This introduces a `Pender` struct with enum cases for thread-mode, interrupt-mode and
custom callback executors. This avoids calls through function pointers when using only
the thread or interrupt executors. Faster, and friendlier to `cargo-call-stack`.
`embassy-executor` now has `arch-xxx` Cargo features to select the arch and to enable
the builtin executors (thread and interrupt).
2023-04-03 03:09:11 +02:00
Dario Nieuwenhuis
b41ee47115
executor: unify export mod.
2023-04-03 01:11:42 +02:00
Dario Nieuwenhuis
80972f1e0e
executor,sync: add support for turbo-wakers.
...
This is a `core` patch to make wakers 1 word (the task pointer) instead of 2 (task pointer + vtable). It allows having the "waker optimization" we had a while back on `WakerRegistration/AtomicWaker`, but EVERYWHERE, without patching all crates.
Advantages:
- Less memory usage.
- Faster.
- `AtomicWaker` can actually use atomics to load/store the waker, No critical section needed.
- No `dyn` call, which means `cargo-call-stack` can now see through wakes.
Disadvantages:
- You have to patch `core`...
- Breaks all executors and other things that create wakers, unless they opt in to using the new `from_ptr` API.
How to use:
- Run this shell script to patch `core`. https://gist.github.com/Dirbaio/c67da7cf318515181539122c9d32b395
- Enable `build-std`
- Enable `build-std-features = core/turbowakers`
- Enable feature `turbowakers` in `embassy-executor`, `embassy-sync`.
- Make sure you have no other crate creating wakers other than `embassy-executor`. These will panic at runtime.
Note that the patched `core` is equivalent to the unpached one when the `turbowakers` feature is not enabled, so it should be fine to leave it there.
2023-03-30 17:55:55 +02:00
Dario Nieuwenhuis
21400da073
executor: Use AtomicPtr for signal_ctx, removes 1 unsafe.
2023-03-27 00:22:00 +02:00
Dario Nieuwenhuis
805bca1f5a
executor: deduplicate doc comments.
2023-03-27 00:20:24 +02:00
Grant Miller
41d558a5f4
executor: Allow TaskStorage to auto-implement Sync
2023-03-20 17:08:15 -05:00
Grant Miller
791fbb3ca0
Make poll_fn
lazily initialized again
2023-01-31 21:46:25 -06:00
Grant Miller
4a8e9cf4d9
Add internal AvailableTask
type
2023-01-31 19:04:41 -06:00
Grant Miller
fb1946be7f
Replace the pointer in TaskHeader
with an Option<&Executor>
2023-01-31 18:59:03 -06:00
Grant Miller
a697f1517a
Set poll_fn
in TaskStorage::new
2023-01-31 18:59:03 -06:00