From ba5a75cd7d0b97bafd02d3b95baf40fd36522fac Mon Sep 17 00:00:00 2001 From: Florian Grandel Date: Sat, 5 Jul 2025 18:25:53 +0200 Subject: executor: rtos-trace: name main task Assigns a name to the main task when (rtos-)tracing is active. This improves tracing usability with the SystemView backend. Signed-off-by: Florian Grandel --- embassy-executor-macros/src/macros/main.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'embassy-executor-macros/src') diff --git a/embassy-executor-macros/src/macros/main.rs b/embassy-executor-macros/src/macros/main.rs index fcc04d9c0..f043ff7f6 100644 --- a/embassy-executor-macros/src/macros/main.rs +++ b/embassy-executor-macros/src/macros/main.rs @@ -170,6 +170,14 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe let f_body = f.body; let out = &f.sig.output; + let name_main_task = if cfg!(feature = "rtos-trace") { + quote!( + main_task.metadata().set_name("main\0"); + ) + } else { + quote!() + }; + let (main_ret, mut main_body) = match arch.flavor { Flavor::Standard => ( quote!(!), @@ -181,7 +189,9 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe let mut executor = #executor::new(); let executor = unsafe { __make_static(&mut executor) }; executor.run(|spawner| { - spawner.spawn(__embassy_main(spawner).unwrap()); + let main_task = __embassy_main(spawner).unwrap(); + #name_main_task + spawner.spawn(main_task); }) }, ), @@ -191,7 +201,9 @@ For example: `#[embassy_executor::main(entry = ..., executor = \"some_crate::Exe let executor = ::std::boxed::Box::leak(::std::boxed::Box::new(#executor::new())); executor.start(|spawner| { - spawner.spawn(__embassy_main(spawner).unwrap()); + let main_task = __embassy_main(spawner).unwrap(); + #name_main_task + spawner.spawn(main_task); }); Ok(()) -- cgit