diff options
| author | Emil Fresk <emil.fresk@gmail.com> | 2023-01-04 21:33:41 +0100 |
|---|---|---|
| committer | Henrik Tjäder <henrik@tjaders.com> | 2023-03-01 00:31:05 +0100 |
| commit | 3b97531a5c40293e265999db543acec365c629df (patch) | |
| tree | ff552e875805ad8a2150920215bc79632f6df2eb /macros/src/codegen/module.rs | |
| parent | 858320cbfc391a74bff6b9c8a0b3c7696a232b76 (diff) | |
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 b4ad68a..7bbfdf3 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 } })); |
