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/timer_queue.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'macros/src/codegen/timer_queue.rs') diff --git a/macros/src/codegen/timer_queue.rs b/macros/src/codegen/timer_queue.rs index 0d2c51ea..ed89af66 100644 --- a/macros/src/codegen/timer_queue.rs +++ b/macros/src/codegen/timer_queue.rs @@ -15,7 +15,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec = rtic::RacyCell::new(0); )); let t = util::schedule_t_ident(); @@ -71,9 +71,11 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec>); + // let doc = format!(" RTIC internal: {}:{}", file!(), line!()); items.push(quote!( #[doc(hidden)] - static mut #tq: #tq_ty = core::mem::MaybeUninit::uninit(); + static #tq: rtic::RacyCell<#tq_ty> = + rtic::RacyCell::new(core::mem::MaybeUninit::uninit()); )); let mono = util::monotonic_ident(&monotonic_name); @@ -82,7 +84,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec = None; + static #mono: rtic::RacyCell> = rtic::RacyCell::new(None); )); } @@ -113,7 +115,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec { - rtic::export::interrupt::free(|_| #rq.split().0.enqueue_unchecked((#rqt::#name, index))); + rtic::export::interrupt::free(|_| #rq.get_mut_unchecked().split().0.enqueue_unchecked((#rqt::#name, index))); #pend } @@ -132,10 +134,9 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec Vec