James Munns
b7e1b1ca94
Fix some intra-doc links
2025-04-03 10:35:00 +02:00
James Munns
ef3c1b87d1
Minor docs improvements
2025-04-01 14:35:21 +02:00
James Munns
2e474b7df2
Remove notes about stability
2025-04-01 14:30:36 +02:00
James Munns
3e25a7be86
Small grammar fixes
2025-04-01 14:27:32 +02:00
James Munns
c3efb85b85
Fix task_end callback
2025-04-01 14:23:39 +02:00
James Munns
8a8e450053
Reorder doc comments for format reasons
2025-04-01 14:12:58 +02:00
James Munns
84cd416bed
Finish trailing sentence
2025-04-01 14:11:42 +02:00
James Munns
882e2180a4
Add docs, add task_end trace point
2025-04-01 14:06:04 +02:00
Matthew Tran
034e9fc218
Move macro helper functions to embassy-executor
2025-03-29 03:52:00 -05:00
Dario Nieuwenhuis
695a6da322
Statically allocate task pools on stable Rust.
...
Thanks @0e4ef622 for the awesome idea of how to do it and the first implementation.
Co-Authored-By: Matthew Tran <0e4ef622@gmail.com>
2025-03-28 19:11:53 +01:00
Murmele
e3b0581a87
Fix comment
2025-03-17 11:04:04 +01:00
Martin Marmsoler
edadc28f02
Add possibility to get the id of a task to be able to use it with rtos-trace
...
Files: spawner.rs
2025-03-14 19:08:50 +01:00
James Sizeland
c1671572b4
improve SpawnError::Busy message
2025-02-03 23:08:55 +00:00
Dániel Buga
44217aa092
Desugar some async fns
2024-12-30 12:13:13 +01:00
wackazong
4c7e1b05a0
Impl core::err::Error for SpawnError
2024-12-23 08:18:18 +01:00
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
Dummyc0m
9e6e09a8d7
executor/spin: introduce an architecture agnostic executor
...
Spin polls the raw executor and never sleeps. It is useful for disabling
any power features associated with wfi/wfe-like instructions.
When implementing support for the CH32V30x MCU, the wfi instruction
had issues interacting with the USB OTG peripheral and appeared to be
non-spec-compliant.
1. When sending a USB Data-in packet, the USB peripheral appears to be
unable to read the system main memory while in WFI. This manifests in
the USB peripheral sending all or partially zeroed DATA packets.
Disabling WFI works around this issue.
2. The WFI instruction does not wake up the processor when MIE is
disabled. The MCU provides a WFITOWFE bit to emulate the WFE instruction
on arm, which, when enabled, ignores the MIE and allows the processor to
wake up. This works around the non-compliant WFI implementation.
Co-authored-by: Codetector <codetector@codetector.org>
Co-authored-by: Dummyc0m <y@types.moe>
2024-10-06 23:33:34 -07:00
Oleksandr Babak
1443f3386b
fix: remove stable nightly feature
2024-09-06 11:34:30 +02:00