diff options
Diffstat (limited to 'macros/src/codegen/spawn.rs')
-rw-r--r-- | macros/src/codegen/spawn.rs | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/macros/src/codegen/spawn.rs b/macros/src/codegen/spawn.rs index 287c92a1..6cad809b 100644 --- a/macros/src/codegen/spawn.rs +++ b/macros/src/codegen/spawn.rs @@ -1,4 +1,4 @@ -use std::collections::{BTreeMap, HashSet}; +use std::collections::HashSet; use proc_macro2::TokenStream as TokenStream2; use quote::quote; @@ -14,16 +14,13 @@ use crate::{ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream2> { let mut items = vec![]; - let mut seen = BTreeMap::<u8, HashSet<_>>::new(); + let mut seen = HashSet::<_>::new(); for (spawner, spawnees) in app.spawn_callers() { - let sender = spawner.core(app); - let cfg_sender = util::cfg_core(sender, app.args.cores); - let seen = seen.entry(sender).or_default(); let mut methods = vec![]; for name in spawnees { let spawnee = &app.software_tasks[name]; - let receiver = spawnee.args.core; + //let receiver = spawnee.args.core; let cfgs = &spawnee.cfgs; let (args, _, untupled, ty) = util::regroup_inputs(&spawnee.inputs); let args = &args; @@ -34,7 +31,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream let body = spawn_body::codegen(spawner, &name, app, analysis, extra); - let let_instant = if app.uses_schedule(receiver) { + let let_instant = if app.uses_schedule() { let m = extra.monotonic(); Some(quote!(let instant = unsafe { <#m as rtic::Monotonic>::zero() };)) @@ -42,7 +39,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream None }; - let section = util::link_section("text", sender); + let section = util::link_section("text"); methods.push(quote!( #(#cfgs)* #section @@ -52,13 +49,13 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream } )); } else { - let spawn = util::spawn_ident(name, sender); + let spawn = util::spawn_ident(name); if !seen.contains(name) { // generate a `spawn_${name}_S${sender}` function seen.insert(name); - let instant = if app.uses_schedule(receiver) { + let instant = if app.uses_schedule() { let m = extra.monotonic(); Some(quote!(, instant: <#m as rtic::Monotonic>::Instant)) @@ -68,9 +65,9 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream let body = spawn_body::codegen(spawner, &name, app, analysis, extra); - let section = util::link_section("text", sender); + let section = util::link_section("text"); items.push(quote!( - #cfg_sender + //#cfg_sender #(#cfgs)* #section unsafe fn #spawn( @@ -83,7 +80,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream )); } - let (let_instant, instant) = if app.uses_schedule(receiver) { + let (let_instant, instant) = if app.uses_schedule() { let m = extra.monotonic(); ( @@ -120,7 +117,7 @@ pub fn codegen(app: &App, analysis: &Analysis, extra: &Extra) -> Vec<TokenStream let spawner = spawner.ident(app); debug_assert!(!methods.is_empty()); items.push(quote!( - #cfg_sender + //#cfg_sender impl<#lt> #spawner::Spawn<#lt> { #(#methods)* } |