aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/module.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2023-01-04 21:33:41 +0100
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2023-03-01 00:31:05 +0100
commit3b97531a5c40293e265999db543acec365c629df (patch)
treeff552e875805ad8a2150920215bc79632f6df2eb /macros/src/codegen/module.rs
parent858320cbfc391a74bff6b9c8a0b3c7696a232b76 (diff)
downloadrtic-3b97531a5c40293e265999db543acec365c629df.tar.gz
rtic-3b97531a5c40293e265999db543acec365c629df.tar.zst
rtic-3b97531a5c40293e265999db543acec365c629df.zip
First example builds again
Diffstat (limited to 'macros/src/codegen/module.rs')
-rw-r--r--macros/src/codegen/module.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/macros/src/codegen/module.rs b/macros/src/codegen/module.rs
index b4ad68aa..7bbfdf37 100644
--- a/macros/src/codegen/module.rs
+++ b/macros/src/codegen/module.rs
@@ -183,13 +183,14 @@ pub fn codegen(
#[doc(hidden)]
pub fn #internal_spawn_ident() -> Result<(), ()> {
unsafe {
- let r = rtic::export::interrupt::free(|_| (&mut *#rq.get_mut()).enqueue(()));
-
- if r.is_ok() {
+ // TODO: Fix this to be compare and swap
+ if #rq.load(core::sync::atomic::Ordering::Acquire) {
+ Err(())
+ } else {
+ #rq.store(true, core::sync::atomic::Ordering::Release);
rtic::pend(#device::#enum_::#interrupt);
+ Ok(())
}
-
- r
}
}));