diff options
author | 2021-03-11 19:12:02 +0100 | |
---|---|---|
committer | 2021-03-13 10:50:56 +0100 | |
commit | 1087f2ee64a5be1aedf3b702ccb5d86cc64708d9 (patch) | |
tree | 312e099ce019124a40345949491475aaac26a7ce /macros/src/codegen/timer_queue.rs | |
parent | 4bdc1879122d6389adab0bebb14795954c491aaf (diff) | |
download | rtic-1087f2ee64a5be1aedf3b702ccb5d86cc64708d9.tar.gz rtic-1087f2ee64a5be1aedf3b702ccb5d86cc64708d9.tar.zst rtic-1087f2ee64a5be1aedf3b702ccb5d86cc64708d9.zip |
Added interface for cancel/reschedule
Use wrapping add for marker
No need to store handle to queue
Remove unnecessary `SpawnHandle::new`
Fix test
Updated interface to follow proposal
Diffstat (limited to 'macros/src/codegen/timer_queue.rs')
-rw-r--r-- | macros/src/codegen/timer_queue.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/macros/src/codegen/timer_queue.rs b/macros/src/codegen/timer_queue.rs index 82d0ac98..33905516 100644 --- a/macros/src/codegen/timer_queue.rs +++ b/macros/src/codegen/timer_queue.rs @@ -9,6 +9,15 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec<TokenStrea let mut items = vec![]; if !app.monotonics.is_empty() { + // Generate the marker counter used to track for `cancel` and `reschedule` + let tq_marker = util::mark_internal_ident(&util::timer_queue_marker_ident()); + items.push(quote!( + // #[doc = #doc] + #[doc(hidden)] + #[allow(non_camel_case_types)] + static mut #tq_marker: u32 = 0; + )); + let t = util::schedule_t_ident(); // Enumeration of `schedule`-able tasks @@ -32,7 +41,7 @@ pub fn codegen(app: &App, analysis: &Analysis, _extra: &Extra) -> Vec<TokenStrea #[doc(hidden)] #[allow(non_camel_case_types)] #[derive(Clone, Copy)] - enum #t { + pub enum #t { #(#variants,)* } )); |