aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor
Commit message (Collapse)AuthorAgeFilesLines
* Bump executor crate version to 0.3.0Dániel Buga2023-08-232-2/+2
|
* Make AvailableTask public, deduplicateDániel Buga2023-08-213-51/+67
|
* Update docsDániel Buga2023-08-142-24/+29
|
* 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-142-24/+2
|
* Remove thread-context featureDániel Buga2023-08-148-34/+5
|
* 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-1210-378/+438
|
* Bump versionDániel Buga2023-08-102-2/+2
|
* Executor: Add changelogDániel Buga2023-08-101-0/+7
|
* 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
|
* Release embassy-time v0.1.2Dario Nieuwenhuis2023-07-061-2/+2
|
* embassy-executor: introduce `InterruptExecutor::spawner()`Kaspar Schleiser2023-06-161-0/+15
|
* Use make_static! from static-cell v1.1Dario Nieuwenhuis2023-06-011-1/+1
|
* Work around xtensa deadlock, take 2Dániel Buga2023-05-131-12/+20
|
* add changelogUlf Lilleengen2023-04-271-0/+23
|
* Bump versions preparing for -macros and -executor releaseUlf Lilleengen2023-04-271-2/+2
|
* 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: fix doc features.Dario Nieuwenhuis2023-04-061-11/+8
|
* executor: Replace unsound critical sections with atomicsGrant Miller2023-04-052-21/+25
|
* executor: add Pender, rework Cargo features.Dario Nieuwenhuis2023-04-038-361/+622
| | | | | | | | | 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-303-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Release embassy-executor v0.1.1Dario Nieuwenhuis2022-11-231-1/+1
|
* executor: enable features for docs.rsDario Nieuwenhuis2022-11-231-0/+3
| | | | Otherwise the non-raw executor and the macros don't show up.
* Merge #1071bors[bot]2022-11-232-4/+11
|\ | | | | | | | | | | | | | | 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-232-4/+11
| | | | | | | | | | 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
|/