aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor
Commit message (Collapse)AuthorAgeFilesLines
* 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
|/
* Merge #1054bors[bot]2022-11-232-13/+6
|\ | | | | | | | | | | | | | | | | | | 1054: riscv fixes r=lulf a=swolix With these changes I can run embassy on our RISC-V processor, please consider merging this, feedback is very welcome. I don't fully understand the code in the executor, but I have implemented a critical section by globally disabling interrupts, which means the wfi inside the critical section will hang the whole thing. Co-authored-by: Sijmen Woutersen <[email protected]>
| * restore SIGNAL_WORK_THREAD_MODESijmen Woutersen2022-11-121-1/+6
| |
| * riscv supportSijmen Woutersen2022-11-102-14/+2
| |
* | doc: update cargo manifests with keywordsUlf Lilleengen2022-11-221-1/+7
|/
* 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
|
* all Cargo.toml: Add license to all crate Cargo.toml fileschrysn2022-10-071-0/+1
| | | | Closes: https://github.com/embassy-rs/embassy/issues/1002
* Build docs in CIDario Nieuwenhuis2022-10-021-1/+1
|
* Replace futures::future::poll_fn -> core::future::poll_fn.Dario Nieuwenhuis2022-09-221-2/+1
|
* Add critical-section/std to std featureDaniel Bevenius2022-09-081-1/+1
| | | | | This commit suggests adding critical-section/std to the std feature as without this a link time error is generated.
* Ensure interrupt::take works without embassy-executorUlf Lilleengen2022-08-251-2/+2
| | | | | | Add "rtos-trace-interrupt" feature flag on embassy-macros and enable it for embassy-executor, to ensure that the interrupt::take! macro can be used without depending on embassy-executor.
* Enable 'std' feature on critical-section for WASMUlf Lilleengen2022-08-231-2/+2
| | | | | | This fixes the WASM support which was failing due to missing critical-section implementation. This also upgrades the bindgen dependency and ensures that tooling works.
* Remove warningsUlf Lilleengen2022-08-221-2/+2
|
* Remove Forever, switch to static_cell.Dario Nieuwenhuis2022-08-227-5/+12
|
* Merge branch 'master' of https://github.com/embassy-rs/embassy into rtos-traceQuentin Smith2022-08-1924-1308/+81
|\
| * Split embassy-time from embassy-executor.Dario Nieuwenhuis2022-08-1824-1307/+75
| |
| * Update to critical-section 1.0, atomic-polyfill 1.0Dario Nieuwenhuis2022-08-171-2/+2
| |
* | Add separate feature flag to enable interrupt tracingQuentin Smith2022-08-162-6/+9
| |
* | cargo fmtQuentin Smith2022-08-102-2/+1
| |
* | Add support for rtos-trace behind a feature flagQuentin Smith2022-08-103-0/+57
|/
* executor: miri fixesDario Nieuwenhuis2022-08-013-32/+26
|
* Split embassy crate into embassy-executor, embassy-util.Dario Nieuwenhuis2022-07-2924-0/+2834