diff options
author | 2023-01-04 21:33:41 +0100 | |
---|---|---|
committer | 2023-03-01 00:31:05 +0100 | |
commit | 3b97531a5c40293e265999db543acec365c629df (patch) | |
tree | ff552e875805ad8a2150920215bc79632f6df2eb /macros/src/codegen/module.rs | |
parent | 858320cbfc391a74bff6b9c8a0b3c7696a232b76 (diff) | |
download | rtic-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.rs | 11 |
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 } })); |