aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/raw/mod.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* Rely on atomic load-store on all targetsDániel Buga2024-12-161-62/+10
|
* Fix racy access of TaskHeader::executorDániel Buga2024-12-161-7/+63
|
* Only lock once to wake a taskDániel Buga2024-12-161-9/+11
|
* Fix comments and tweak task exitDániel Buga2024-12-151-6/+15
|
* Make sure an exited task does not get stuck in a timer queueDániel Buga2024-12-151-0/+14
|
* Make `integrated-timers` the default, remove Cargo feature.Dario Nieuwenhuis2024-12-151-7/+0
|
* Prevent task from respawning while in the timer queueDániel Buga2024-12-131-1/+35
|
* Do not access task headerDániel Buga2024-12-101-0/+6
|
* Refactor integrated-timersDániel Buga2024-12-101-109/+26
|
* Extend tracing api to support executor id and end taskUlf Lilleengen2024-12-091-40/+12
| | | | | | Allow applications to provide a trace implementation that only needs to implement APIs used by the embassy executor, and provide more context in the event of multiple executors being used.
* Add initializeDániel Buga2024-11-191-5/+16
|
* Only set callback onceDániel Buga2024-11-191-5/+7
|
* Fix warnings in recent nightly.Dario Nieuwenhuis2024-03-201-1/+1
|
* fix: removed trailing commaxgroleau🐢2024-02-081-1/+1
|
* fix: missing 0xgroleau🐢2024-02-081-1/+1
|
* fix: compilation for rtos tracexgroleau🐢2024-02-081-1/+11
|
* fix: rtos-usage time missingxgroleau🐢2024-02-061-1/+1
|
* time: split queue driver too, don't reexport drivers.Dario Nieuwenhuis2024-01-111-14/+13
|
* executor: rename macro crate to embassy-executor-macros, bump it.Dario Nieuwenhuis2023-12-071-2/+2
|
* executor: add faster ARM-specific impl.Dario Nieuwenhuis2023-11-151-1/+2
| | | | Does a wake+poll in 79 cycles in nrf52840.
* executor: remove atomic-polyfill.Dario Nieuwenhuis2023-11-151-43/+15
|
* write to TaskStorage::future via inline(never) fn to encourage RVOHailey Somerville2023-09-141-1/+1
|
* Make AvailableTask public, deduplicateDániel Buga2023-08-211-50/+63
|
* Update docsDániel Buga2023-08-141-24/+25
|
* Hide PenderDániel Buga2023-08-141-2/+2
|
* Remove interrupt executor, remove PenderContextDániel Buga2023-08-141-12/+5
|
* Make PenderContext actually pointer-sizeDániel Buga2023-08-141-1/+1
|
* Make PenderContext opaqueDániel Buga2023-08-141-2/+21
|
* Remove the Pender enumDániel Buga2023-08-141-41/+7
|
* Remove pender-callbackDániel Buga2023-08-141-19/+0
|
* Remove thread-context featureDániel Buga2023-08-141-7/+0
|
* Remove Pender wrapperDániel Buga2023-08-121-21/+21
|
* POC: allow custom executorsDániel Buga2023-08-121-4/+31
|
* add wake_task_no_pend for expired timer enqueue inside run_queueloris2023-08-051-1/+26
|
* Allow clearing finished task from timer queueDániel Buga2023-07-121-0/+3
|
* executor: Replace unsound critical sections with atomicsGrant Miller2023-04-051-15/+13
|
* executor: add Pender, rework Cargo features.Dario Nieuwenhuis2023-04-031-21/+76
| | | | | | | | | 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).
* executor,sync: add support for turbo-wakers.Dario Nieuwenhuis2023-03-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* executor: Use AtomicPtr for signal_ctx, removes 1 unsafe.Dario Nieuwenhuis2023-03-271-6/+4
|
* executor: deduplicate doc comments.Dario Nieuwenhuis2023-03-271-24/+1
|
* executor: Allow TaskStorage to auto-implement `Sync`Grant Miller2023-03-201-44/+112
|
* Make `poll_fn` lazily initialized againGrant Miller2023-01-311-3/+5
|
* Add internal `AvailableTask` typeGrant Miller2023-01-311-28/+40
|
* Replace the pointer in `TaskHeader` with an `Option<&Executor>`Grant Miller2023-01-311-5/+5
|
* Set `poll_fn` in `TaskStorage::new`Grant Miller2023-01-311-21/+14
|
* Make `wake_task` safeGrant Miller2023-01-291-9/+7
|
* executor: Replace `NonNull<TaskHeader>` with `TaskRef`Grant Miller2023-01-291-18/+45
|
* Remove the _embassy_time_schedule_wake magicivmarkov2022-10-261-6/+13
|
* Change time Driver contract to never fire the alarm synchronouslyivmarkov2022-10-241-32/+40
|
* Remove warningsUlf Lilleengen2022-08-221-2/+2
|