aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/async_dispatchers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen/async_dispatchers.rs')
-rw-r--r--macros/src/codegen/async_dispatchers.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/macros/src/codegen/async_dispatchers.rs b/macros/src/codegen/async_dispatchers.rs
index aa854d7f..c8116654 100644
--- a/macros/src/codegen/async_dispatchers.rs
+++ b/macros/src/codegen/async_dispatchers.rs
@@ -101,7 +101,12 @@ pub fn codegen(app: &App, analysis: &Analysis) -> Vec<TokenStream2> {
const PRIORITY: u8 = #level;
rtic::export::run(PRIORITY, || {
+ // Have the acquire/release semantics outside the checks to no overdo it
+ core::sync::atomic::fence(core::sync::atomic::Ordering::Acquire);
+
#(#stmts)*
+
+ core::sync::atomic::fence(core::sync::atomic::Ordering::Release);
});
}
));