aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/src/raw/trace.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2025-07-09 01:18:04 +0200
committerdiondokter <[email protected]>2025-08-29 13:22:59 +0200
commitda9cdf0c536ec4fa7bdfb649750c44f70ef1cd55 (patch)
treea080b8663037d8d4af8fc3998360faa80c45fb02 /embassy-executor/src/raw/trace.rs
parent2ba34ce2178d576f339f0b0dac70ac125f81cc5b (diff)
executor: add "task metadata" concept, make name a task metadata.
Diffstat (limited to 'embassy-executor/src/raw/trace.rs')
-rw-r--r--embassy-executor/src/raw/trace.rs29
1 files changed, 1 insertions, 28 deletions
diff --git a/embassy-executor/src/raw/trace.rs b/embassy-executor/src/raw/trace.rs
index 636608d02..ab0c1b8b6 100644
--- a/embassy-executor/src/raw/trace.rs
+++ b/embassy-executor/src/raw/trace.rs
@@ -168,32 +168,6 @@ impl TaskTracker {
168 } 168 }
169} 169}
170 170
171/// Extension trait for `TaskRef` that provides tracing functionality.
172///
173/// This trait is only available when the `trace` feature is enabled.
174/// It extends `TaskRef` with methods for accessing and modifying task identifiers
175/// and names, which are useful for debugging, logging, and performance analysis.
176pub trait TaskRefTrace {
177 /// Get the name for a task
178 fn name(&self) -> Option<&'static str>;
179
180 /// Set the name for a task
181 fn set_name(&self, name: Option<&'static str>);
182}
183
184impl TaskRefTrace for TaskRef {
185 fn name(&self) -> Option<&'static str> {
186 self.header().name
187 }
188
189 fn set_name(&self, name: Option<&'static str>) {
190 unsafe {
191 let header_ptr = self.ptr.as_ptr() as *mut TaskHeader;
192 (*header_ptr).name = name;
193 }
194 }
195}
196
197#[cfg(feature = "trace")] 171#[cfg(feature = "trace")]
198extern "Rust" { 172extern "Rust" {
199 /// This callback is called when the executor begins polling. This will always 173 /// This callback is called when the executor begins polling. This will always
@@ -383,9 +357,8 @@ where
383impl rtos_trace::RtosTraceOSCallbacks for crate::raw::SyncExecutor { 357impl rtos_trace::RtosTraceOSCallbacks for crate::raw::SyncExecutor {
384 fn task_list() { 358 fn task_list() {
385 with_all_active_tasks(|task| { 359 with_all_active_tasks(|task| {
386 let name = task.name().unwrap_or("unnamed task\0");
387 let info = rtos_trace::TaskInfo { 360 let info = rtos_trace::TaskInfo {
388 name, 361 name: task.metadata().name().unwrap_or("unnamed task\0"),
389 priority: 0, 362 priority: 0,
390 stack_base: 0, 363 stack_base: 0,
391 stack_size: 0, 364 stack_size: 0,