aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src
Commit message (Collapse)AuthorAgeFilesLines
* update UninitCell::write call in arch::wasm tooHailey Somerville2023-09-141-2/+3
|
* write to TaskStorage::future via inline(never) fn to encourage RVOHailey Somerville2023-09-142-3/+4
|
* Sync all fmt.rs files.Dario Nieuwenhuis2023-08-301-6/+39
|
* Avoid dead code warningDániel Buga2023-08-261-3/+2
|
* Make AvailableTask public, deduplicateDániel Buga2023-08-212-51/+65
|
* Update docsDániel Buga2023-08-141-24/+25
|
* Don't check context if only thread-mode is enabledDániel Buga2023-08-141-1/+2
|
* Hide PenderDániel Buga2023-08-141-2/+2
|
* Fix fn nameDániel Buga2023-08-143-5/+5
|
* Remove interrupt executor, remove PenderContextDániel Buga2023-08-148-164/+19
|
* Make PenderContext actually pointer-sizeDániel Buga2023-08-141-1/+1
|
* Remove the non-specific thread-mode executorDániel Buga2023-08-147-268/+361
|
* Make PenderContext opaqueDániel Buga2023-08-146-8/+29
|
* Remove the Pender enumDániel Buga2023-08-148-101/+98
|
* Remove pender-callbackDániel Buga2023-08-141-19/+0
|
* Remove thread-context featureDániel Buga2023-08-147-29/+3
|
* Tweak identifiers and commentsDániel Buga2023-08-126-47/+50
|
* Lift thread-context feature restrictionsDániel Buga2023-08-122-12/+17
|
* Remove unnecessary !Send markersDániel Buga2023-08-124-21/+5
|
* Remove Pender wrapperDániel Buga2023-08-124-29/+27
|
* POC: allow custom executorsDániel Buga2023-08-129-376/+433
|
* 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
|
* embassy-executor: introduce `InterruptExecutor::spawner()`Kaspar Schleiser2023-06-161-0/+15
|
* Work around xtensa deadlock, take 2Dániel Buga2023-05-131-12/+20
|
* Executor: Replace unnecessary atomics in runqueueGrant Miller2023-04-131-9/+16
|
* re-export main_riscv macro as main for riscv arch.Roy Buitenhuis2023-04-111-0/+3
|
* executor: Replace unsound critical sections with atomicsGrant Miller2023-04-052-21/+25
|
* executor: add Pender, rework Cargo features.Dario Nieuwenhuis2023-04-037-356/+602
| | | | | | | | | 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: unify export mod.Dario Nieuwenhuis2023-04-031-8/+4
|
* executor,sync: add support for turbo-wakers.Dario Nieuwenhuis2023-03-302-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | 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-204-57/+154
|
* 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-312-11/+11
|
* Set `poll_fn` in `TaskStorage::new`Grant Miller2023-01-312-27/+14
|
* Make `wake_task` safeGrant Miller2023-01-291-9/+7
|
* executor: Replace `NonNull<TaskHeader>` with `TaskRef`Grant Miller2023-01-295-57/+76
|
* Remove unnecessary use of atomic-polyfill.Dario Nieuwenhuis2022-12-232-4/+2
| | | | Only use it when CAS is actually needed.
* Merge #1071bors[bot]2022-11-231-1/+9
|\ | | | | | | | | | | | | | | 1071: refactor: autodetect macro variant r=Dirbaio a=lulf Apply heuristics using target_arch, target_os and target_family to determine which variant of the entry point to use. Co-authored-by: Ulf Lilleengen <[email protected]>
| * refactor: autodetect macro variantUlf Lilleengen2022-11-231-1/+9
| | | | | | | | | | Export all main macro per target architecture from embassy-macros, and select the appropriate macro in embassy-executor.
* | fix: revert race condition introduced for riscvUlf Lilleengen2022-11-231-5/+13
|/
* restore SIGNAL_WORK_THREAD_MODESijmen Woutersen2022-11-121-1/+6
|
* riscv supportSijmen Woutersen2022-11-101-14/+1
|
* 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
|
* Replace futures::future::poll_fn -> core::future::poll_fn.Dario Nieuwenhuis2022-09-221-2/+1
|
* Remove warningsUlf Lilleengen2022-08-221-2/+2
|