From 6aa0fb450f417ce899b43f4539eb226b391a0f2e Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Thu, 8 Apr 2021 18:25:09 +0200 Subject: Goodbye static mut --- macros/src/codegen/dispatchers.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'macros/src/codegen/dispatchers.rs') diff --git a/macros/src/codegen/dispatchers.rs b/macros/src/codegen/dispatchers.rs index dc33b1af..6aca901a 100644 --- a/macros/src/codegen/dispatchers.rs +++ b/macros/src/codegen/dispatchers.rs @@ -59,7 +59,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec = rtic::RacyCell::new(#rq_expr); )); let arms = channel @@ -86,8 +86,12 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec { let #tupled = - #inputs.get_unchecked(usize::from(index)).as_ptr().read(); - #fq.split().0.enqueue_unchecked(index); + #inputs + .get_unchecked() + .get_unchecked(usize::from(index)) + .as_ptr() + .read(); + #fq.get_mut_unchecked().split().0.enqueue_unchecked(index); let priority = &rtic::export::Priority::new(PRIORITY); #app_path::#name( #locals_new @@ -100,7 +104,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec>(); stmts.push(quote!( - while let Some((task, index)) = #rq.split().1.dequeue() { + while let Some((task, index)) = #rq.get_mut_unchecked().split().1.dequeue() { match task { #(#arms)* } -- cgit v1.2.3 From 50f26e78eda57cb1f9f815aa93b357c2cd1a0205 Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Thu, 22 Apr 2021 18:38:42 +0200 Subject: Keep comments --- macros/src/codegen/dispatchers.rs | 2 ++ macros/src/codegen/module.rs | 1 + macros/src/codegen/post_init.rs | 1 + macros/src/codegen/resources.rs | 4 +++- macros/src/codegen/software_tasks.rs | 1 + macros/src/codegen/timer_queue.rs | 4 ++++ 6 files changed, 12 insertions(+), 1 deletion(-) (limited to 'macros/src/codegen/dispatchers.rs') diff --git a/macros/src/codegen/dispatchers.rs b/macros/src/codegen/dispatchers.rs index 6aca901a..382e33fe 100644 --- a/macros/src/codegen/dispatchers.rs +++ b/macros/src/codegen/dispatchers.rs @@ -26,6 +26,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec>(); + // For future use // let doc = format!( // "Software tasks to be dispatched at priority level {}", // level, @@ -53,6 +54,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec Vec { } for (i, (monotonic, _)) in app.monotonics.iter().enumerate() { + // For future use // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); // stmts.push(quote!(#[doc = #doc])); diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs index 53523696..a623ea60 100644 --- a/macros/src/codegen/resources.rs +++ b/macros/src/codegen/resources.rs @@ -31,7 +31,6 @@ pub fn codegen( let mangled_name = util::mark_internal_ident(&name); { - // TODO: do we really need this in the single core case // late resources in `util::link_section_uninit` let section = if expr.is_none() { util::link_section_uninit(true) @@ -56,6 +55,7 @@ pub fn codegen( let attrs = &res.attrs; + // For future use // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); mod_app.push(quote!( #[allow(non_upper_case_globals)] @@ -69,6 +69,7 @@ pub fn codegen( } let r_prop = &res.properties; + // For future use // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); if !r_prop.task_local && !r_prop.lock_free { @@ -122,6 +123,7 @@ pub fn codegen( None => 0, }; + // For future use // let doc = format!(" RTIC internal ({} resource): {}:{}", doc, file!(), line!()); mod_app.push(util::impl_mutex( diff --git a/macros/src/codegen/software_tasks.rs b/macros/src/codegen/software_tasks.rs index e42fb88d..0372e8ec 100644 --- a/macros/src/codegen/software_tasks.rs +++ b/macros/src/codegen/software_tasks.rs @@ -65,6 +65,7 @@ pub fn codegen( let mono_type = &monotonic.ty; let uninit = mk_uninit(); + // For future use // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); mod_app.push(quote!( #uninit diff --git a/macros/src/codegen/timer_queue.rs b/macros/src/codegen/timer_queue.rs index ed89af66..14e91054 100644 --- a/macros/src/codegen/timer_queue.rs +++ b/macros/src/codegen/timer_queue.rs @@ -35,6 +35,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec>(); + // For future use // let doc = "Tasks that can be scheduled".to_string(); items.push(quote!( // #[doc = #doc] @@ -61,6 +62,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec Vec>); + // For future use // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); items.push(quote!( #[doc(hidden)] @@ -80,6 +83,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec