aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/raw/mod.rs
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Merge branch 'master' of https://github.com/embassy-rs/embassy into rtos-traceQuentin Smith2022-08-191-0/+35
|
* Split embassy-time from embassy-executor.Dario Nieuwenhuis2022-08-181-0/+428