80 Commits

Author SHA1 Message Date
Dániel Buga
76d8a896bb
Make poll_to_despawn a no_op 2024-12-17 18:51:22 +01:00
Dániel Buga
2ca374fc9c
Don't force a wake to despawn 2024-12-17 18:47:56 +01:00
Dániel Buga
a011f48769
Make poll_to_despawn non-generic 2024-12-17 18:37:17 +01:00
Dániel Buga
7d5fbe26c9
Update state diagram 2024-12-17 18:17:36 +01:00
Dániel Buga
8fd08b1e97
Swap poll_fn to allow polling exited tasks 2024-12-17 18:07:06 +01:00
Dániel Buga
edb8f21a74
Take critical section instead of unsafe 2024-12-17 17:53:12 +01:00
Dániel Buga
889b419fc4
Simplify ARM run_enqueue 2024-12-17 17:15:40 +01:00
Dániel Buga
c6ca46c825
Set RUN_QUEUED unconditionally 2024-12-17 16:52:13 +01:00
Dániel Buga
7eac184af0
Document task states and state transitions 2024-12-17 16:47:33 +01:00
Dario Nieuwenhuis
c504ae8d3a
Merge pull request #3656 from bugadani/timer-queue-special
Remove special handling of integrated timer queues and items
2024-12-17 14:52:12 +01:00
Dario Nieuwenhuis
fc25fca00b Remove WakerHack for good.
Now that 1.83 xtensa is out, we can remove it unconditionally.
2024-12-17 13:06:31 +01:00
Dániel Buga
c90d048ecb
Remove TIMER_QUEUED 2024-12-16 20:37:02 +01:00
Dániel Buga
fbd0fe06bd
Remove special handling of integrated timer items 2024-12-16 20:37:01 +01:00
Dániel Buga
c9f32b7e36
Attach payload to TimerQueueItem 2024-12-16 20:36:59 +01:00
Dániel Buga
3c121e5425
Remove special handling of integrated timer queue 2024-12-16 19:22:22 +01:00
Dániel Buga
b47a631abf
Rely on atomic load-store on all targets 2024-12-16 17:29:07 +01:00
Dániel Buga
b44ef5ccb4
Fix racy access of TaskHeader::executor 2024-12-16 16:01:08 +01:00
Dániel Buga
f389ba3721
Only lock once to wake a task 2024-12-16 15:28:19 +01:00
Dániel Buga
a10290b28e
Zero-inizialize expires_at 2024-12-16 09:15:15 +01:00
Dániel Buga
e861344b17
Fix comments and tweak task exit 2024-12-15 18:50:00 +01:00
Dániel Buga
5c4983236c
Make sure an exited task does not get stuck in a timer queue 2024-12-15 18:50:00 +01:00
Dario Nieuwenhuis
2f2e2c6031
Make integrated-timers the default, remove Cargo feature. 2024-12-15 18:49:57 +01:00
Dániel Buga
ec96395d08
Prevent task from respawning while in the timer queue 2024-12-13 21:20:57 +01:00
Dániel Buga
d45ea43892
Move integrated timer queue into time-queue-driver 2024-12-12 15:38:52 +01:00
Dániel Buga
dc18ee29a0
Do not access task header 2024-12-10 21:31:42 +01:00
Dániel Buga
12f58fbcfd
Remove TIMER_QUEUED state 2024-12-10 21:31:42 +01:00
Dániel Buga
5a5495aac4
Refactor integrated-timers 2024-12-10 21:31:42 +01:00
Ulf Lilleengen
f0be2fdce4 Extend tracing api to support executor id and end task
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.
2024-12-09 15:16:03 +01:00
Dániel Buga
8ebe059ecb
Add initialize 2024-11-19 16:25:17 +01:00
Dániel Buga
ff02ee1a22
Only set callback once 2024-11-19 14:42:41 +01:00
Dario Nieuwenhuis
853c5c567a executor: compare vtable addr instead of contents.
Saves a whopping 44 bytes of text, yay.
2024-11-12 16:30:46 +01:00
Dario Nieuwenhuis
baeb59b5b8
executor: use WakerHack unconditionally even if nightly feature is enabled. (#3528)
This ensures the executor compiles with all recent nightly versions,
including the stable-but-with-nightly-features-enabled xtensa rustc.
2024-11-12 16:28:26 +01:00
Dániel Buga
1e850ae791
Detect and allow older nightlies 2024-11-06 10:48:59 +01:00
Oleksandr Babak
01d8508b6c
fix: nightly api changed during the night 2024-09-06 11:16:44 +02:00
zjp
dd6a873447 minimize cfg code in task_from_waker 2024-06-13 07:59:28 +08:00
zjp
b780df5f76 put cfg code inside task_from_waker function 2024-06-13 07:33:40 +08:00
zjp
6b9470be2c fix warning on unused import 2024-06-09 11:50:32 +08:00
zjp
3f45ec6ead use nightly waker_getters APIs
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.
2024-06-09 11:39:47 +08:00
Dario Nieuwenhuis
eca9aac194 Fix warnings in recent nightly. 2024-03-20 16:39:09 +01:00
xgroleau🐢
262518cfe5 fix: removed trailing comma 2024-02-08 09:02:07 -05:00
xgroleau🐢
09613e90de fix: missing 0 2024-02-08 09:01:07 -05:00
xgroleau🐢
d48620d58f fix: compilation for rtos trace 2024-02-08 08:59:06 -05:00
xgroleau🐢
5f36108896 fix: rtos-usage time missing 2024-02-06 15:08:05 -05:00
Dario Nieuwenhuis
f0606da9ad time: split queue driver too, don't reexport drivers. 2024-01-11 23:01:24 +01:00
Dario Nieuwenhuis
ac2aec4e7a executor: rename macro crate to embassy-executor-macros, bump it. 2023-12-07 00:48:30 +01:00
Dario Nieuwenhuis
27e6634c9d executor: add faster ARM-specific impl.
Does a wake+poll in 79 cycles in nrf52840.
2023-11-15 18:47:11 +01:00
Dario Nieuwenhuis
bef9b7a853 executor: remove atomic-polyfill. 2023-11-15 18:43:27 +01:00
Aleksandr Krotov
6b19c0abd1
Fix #2100 - function address comparison 2023-10-25 11:01:35 +03:00
Hailey Somerville
3a1ed823f8 write to TaskStorage::future via inline(never) fn to encourage RVO 2023-09-14 13:42:11 +10:00
Dániel Buga
0a73c84df0 Make AvailableTask public, deduplicate 2023-08-21 18:12:41 +02:00