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