James Munns
4479f5bbfc
Regular comments not doc comments
2025-09-11 14:45:06 +02:00
James Munns
38e5e2e9ce
Replace use of RefCell with UnsafeCell
2025-09-11 14:45:06 +02:00
James Munns
20b56b0fe0
Update to use critical-section::Mutex instead of mutex::BlockingMutex
...
This allows the scheduler to better collaborate with existing critical sections
2025-09-11 14:45:06 +02:00
James Munns
cf171ad6d9
fmt
2025-09-11 14:45:06 +02:00
James Munns
db063945e7
Inline the "MutexTransferStack" impl as it is unclear whether it will be merged upstream
2025-09-11 14:45:06 +02:00
James Munns
d88ea8dd2a
Update with cordyceps changes
2025-09-11 14:45:06 +02:00
James Munns
7af8f35a50
There can be only one (run queue)
2025-09-11 14:45:06 +02:00
James Munns
0e28ba1091
"Deadline Rank Sorted Scheduler" -> "Earliest Deadline First Scheduler"
2025-09-11 14:45:06 +02:00
James Munns
3929142f4c
One more must_use
2025-09-11 14:45:06 +02:00
James Munns
b1b2955b60
Switch to released version of cordyceps
, add error if used w/o atomics
2025-09-11 14:45:06 +02:00
James Munns
b65a3a301a
Clean up some TODOs
2025-09-11 14:45:06 +02:00
James Munns
08a57b1cb0
Update with changes from the PR
2025-09-11 14:45:06 +02:00
James Munns
2a068c5283
Conditional import
2025-09-11 14:45:06 +02:00
James Munns
ed2e51bfa4
Dependency enablement trickery
2025-09-11 14:45:06 +02:00
James Munns
ba0426f767
Combine DRS and non-DRS atomic scheduler, using cordyceps
2025-09-11 14:45:06 +02:00
James Munns
8c70aafd4b
Make some things more consistent
2025-09-11 14:45:06 +02:00
James Munns
1f50e4d496
Implement Deadline Ranked Scheduling
...
This implements a minimal version of Deadline Rank Scheduling, as well as ways to access and set Deadlines.
This still needs some UX improvements, but is likely Enough for testing.
2025-09-11 14:45:06 +02:00
James Munns
535c80e61f
Add initial DRS scheduler placeholder
...
* Start hacking in cordyceps
This adds a third kind of runqueue, for now it should work the same as the
current "atomics" runqueue, but uses a cordyceps TransferStack instead of
the existing home-rolled linked list.
* Clean up, use new cordyceps feature
* A bit more cleanup
* Update docs to be more clear
2025-09-11 14:45:06 +02:00
Gabriel Smith
86aff0e63e
chore: bump embassy-executor to 0.9.1 to match released version
2025-09-08 14:48:06 -04:00
Dario Nieuwenhuis
286d887529
executor: always name main task main
, not just with rtos-trace.
...
Also fixes the warning about the `rtos-trace` feature not existing in embassy-executor-macros.
2025-09-05 14:57:05 +02:00
Dániel Buga
219cf09aab
Remove features, fix changelog
2025-09-02 08:34:07 +02:00
Dario Nieuwenhuis
0962b09603
Add changelog for embassy-executor v0.9.1
2025-08-31 23:09:31 +02:00
Dario Nieuwenhuis
4cd86e5e76
Merge branch 'main' into feat/name-main-task
2025-08-31 20:50:20 +02:00
Dario Nieuwenhuis
a05506640b
Merge branch 'main' into feat/upgrade-rtos-trace
2025-08-31 20:37:10 +02:00
Dániel Buga
fb531da007
Prefer word-sized state in CS impl
2025-08-31 10:45:03 +02:00
Dániel Buga
3fb6a9191c
Prefer pointer-sized atomic operations
2025-08-31 10:22:45 +02:00
Florian Grandel
47e45c9821
rtos-trace: upgraded feature support
...
Upgrade rtos-trace for start/stop and marker support.
These methods are not used in embassy code but can be useful in client
code.
Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2025-08-30 17:54:03 +02:00
Florian Grandel
ba5a75cd7d
executor: rtos-trace: name main task
...
Assigns a name to the main task when (rtos-)tracing is active. This
improves tracing usability with the SystemView backend.
Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2025-08-30 17:42:37 +02:00
diondokter
e2c34ac735
Add to changelog
2025-08-29 13:58:16 +02:00
diondokter
916dce55ea
Fix test & rtos-trace
2025-08-29 13:30:11 +02:00
Dario Nieuwenhuis
8aec341f28
executor: return error when creating the spawntoken, not when spawning.
2025-08-29 13:23:21 +02:00
Dario Nieuwenhuis
34ff67cdbf
executor: do not deref a mut ptr to the entire taskheader.
2025-08-29 13:22:59 +02:00
Dario Nieuwenhuis
da9cdf0c53
executor: add "task metadata" concept, make name a task metadata.
2025-08-29 13:22:59 +02:00
Dario Nieuwenhuis
2ba34ce217
executor: allow trace and rtos-trace to coexist additively.
...
Before, enabling `trace` would enable embassy-native tracing, and
enabling *both* would *disable* embassy-native tracing.
2025-08-29 13:22:01 +02:00
Dario Nieuwenhuis
658a52fb99
executor: do not store task IDs in RAM, we can get it from the pointer every time.
2025-08-29 13:20:18 +02:00
Ulf Lilleengen
83f2557eac
chore: prepare embassy crate releases
2025-08-26 16:05:09 +02:00
Dario Nieuwenhuis
9f12852c38
Read crate configs from metadata.
2025-08-25 19:44:50 +02:00
Ulf Lilleengen
6a347f1f09
feat: add semver checks and releasing to releaser
...
* List dependencies of a crate
* List dependents of a crate
* Perform semver-checks of a crate
* Prepare a release for a crate and all dependents
* Use a single release.toml for cargo-release
* Add changelogs where missing
2025-08-25 19:44:49 +02:00
Dániel Buga
1bf3a44e5d
Retain timer_queue_item
2025-08-18 12:50:52 +02:00
Dániel Buga
74037f0493
Make TimerQueueItem opaque
2025-08-18 12:50:51 +02:00
Bart Slinger
b7964df887
add missing feature gate for rtos-trace
2025-08-14 13:54:43 +08:00
Ulf Lilleengen
0646df7afe
Merge pull request #4486 from embassy-rs/release-executor-0.8
...
Release executor 0.8
2025-08-01 07:38:34 +00:00
Ulf Lilleengen
f3cb0f3c30
Merge pull request #4443 from Brezak/task-unsafe
...
executor: mark unsafe tasks as unsafe
2025-08-01 06:42:55 +00:00
Ulf Lilleengen
afc8be91a8
chore: Release embassy-executor version 0.8.0
2025-07-31 10:34:07 +02:00
Ulf Lilleengen
3f1ddaf60e
chore: prepare embassy-executor 0.8 release
2025-07-31 10:33:14 +02:00
Ralph Ursprung
98595f659c
embassy-time
: add missing Debug
& defmt::Format
derives
...
`defmt::Format` is *not* implemented for `MockDriver` and
`InnerMockDriver` because the former contains the latter and the latter
is using `Queue` from `embassy-time-queue-utils` which so far does not
have a `defmt` dependency. since this is just a mock driver it shouldn't
be relevant if it has no `defmt::Format` impl.
2025-07-28 15:44:21 +02:00
Brezak
54d9a7fed3
embassy-executor: add macro ui test for unsafe ops in unsafe tasks
...
Check if the #[task] macro properly handles unsafe functions so the `unsafe_op_in_unsafe_fn` lint still works
2025-07-23 21:19:30 +02:00
Brezak
539ff78ebb
embassy-executor: explicitly return impl Future in task inner task
2025-07-23 20:55:42 +02:00
Brezak
1b42e62424
embassy-executor: explicitly return impl Future in task inner task
2025-07-23 19:33:51 +02:00
Brezak
a52965dc5d
embassy-executor: unsafe tasks as unsafe
2025-07-23 19:19:02 +02:00