aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/raw
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactor integrated-timersDániel Buga2024-12-103-141/+88
|
* Extend tracing api to support executor id and end taskUlf Lilleengen2024-12-092-40/+102
| | | | | | 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
|
* executor: compare vtable addr instead of contents.Dario Nieuwenhuis2024-11-121-1/+3
| | | | Saves a whopping 44 bytes of text, yay.
* executor: use WakerHack unconditionally even if `nightly` feature is ↵Dario Nieuwenhuis2024-11-121-31/+11
| | | | | | enabled. (#3528) This ensures the executor compiles with all recent nightly versions, including the stable-but-with-nightly-features-enabled xtensa rustc.
* Detect and allow older nightliesDániel Buga2024-11-061-1/+10
|
* fix: nightly api changed during the nightOleksandr Babak2024-09-061-2/+1
|
* minimize cfg code in task_from_wakerzjp2024-06-131-26/+23
|
* put cfg code inside task_from_waker functionzjp2024-06-131-36/+26
|
* fix warning on unused importzjp2024-06-091-2/+1
|
* use nightly waker_getters APIszjp2024-06-091-0/+25
| | | | | | | Since https://github.com/rust-lang/rust/issues/96992 has stalled, to prevent potential unsoundness caused by transmuting to &WakerHack, we can use nightly waker_getters APIs by gating it behind nightly feature in embassy-executor without waiting for it to be stablized.
* 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-112-21/+18
|
* 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-152-1/+105
| | | | Does a wake+poll in 79 cycles in nrf52840.
* executor: remove atomic-polyfill.Dario Nieuwenhuis2023-11-156-52/+260
|
* Fix #2100 - function address comparisonAleksandr Krotov2023-10-251-1/+1
|
* write to TaskStorage::future via inline(never) fn to encourage RVOHailey Somerville2023-09-142-3/+4
|
* 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 unnecessary atomics in runqueueGrant Miller2023-04-131-9/+16
|
* executor: Replace unsound critical sections with atomicsGrant Miller2023-04-052-21/+25
|
* 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-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-203-49/+150
|
* 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-312-27/+14
|
* Make `wake_task` safeGrant Miller2023-01-291-9/+7
|
* executor: Replace `NonNull<TaskHeader>` with `TaskRef`Grant Miller2023-01-294-52/+72
|
* Remove the _embassy_time_schedule_wake magicivmarkov2022-10-261-6/+13
|