mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-27 14:04:56 +01:00
spawn POC works, likely unsound, cleanup
This commit is contained in:
parent
6bd168d711
commit
aac97a2109
3 changed files with 0 additions and 81 deletions
|
@ -20,7 +20,6 @@ mod schedule_body;
|
|||
mod software_tasks;
|
||||
mod spawn;
|
||||
mod spawn_body;
|
||||
mod spawn_module;
|
||||
mod timer_queue;
|
||||
mod util;
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ use proc_macro2::TokenStream as TokenStream2;
|
|||
use quote::quote;
|
||||
use rtic_syntax::{ast::App, Context};
|
||||
|
||||
// use crate::{analyze::Analysis, check::Extra, codegen::spawn_module, codegen::util};
|
||||
use crate::{analyze::Analysis, check::Extra, codegen::util};
|
||||
|
||||
pub fn codegen(
|
||||
|
|
|
@ -1,79 +0,0 @@
|
|||
use proc_macro2::TokenStream as TokenStream2;
|
||||
use quote::quote;
|
||||
use rtic_syntax::{ast::App, Context};
|
||||
use syn::Ident;
|
||||
|
||||
#[allow(unused_imports)]
|
||||
use crate::{analyze::Analysis, check::Extra, codegen::util};
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn codegen(
|
||||
_spawner: Context,
|
||||
_name: &Ident,
|
||||
_app: &App,
|
||||
_analysis: &Analysis,
|
||||
_extra: &Extra,
|
||||
) -> TokenStream2 {
|
||||
// let spawnee = &app.software_tasks[name];
|
||||
// let priority = spawnee.args.priority;
|
||||
|
||||
// let write_instant = if app.uses_schedule() {
|
||||
// let instants = util::instants_ident(name);
|
||||
|
||||
// Some(quote!(
|
||||
// #instants.get_unchecked_mut(usize::from(index)).as_mut_ptr().write(instant);
|
||||
// ))
|
||||
// } else {
|
||||
// None
|
||||
// };
|
||||
|
||||
// let t = util::spawn_t_ident(priority);
|
||||
// let fq = util::fq_ident(name);
|
||||
// let rq = util::rq_ident(priority);
|
||||
// let (dequeue, enqueue) = if spawner.is_init() {
|
||||
// (
|
||||
// quote!(#fq.dequeue()),
|
||||
// quote!(#rq.enqueue_unchecked((#t::#name, index));),
|
||||
// )
|
||||
// } else {
|
||||
// (
|
||||
// quote!((#fq { priority }.lock(|fq| fq.split().1.dequeue()))),
|
||||
// quote!((#rq { priority }.lock(|rq| {
|
||||
// rq.split().0.enqueue_unchecked((#t::#name, index))
|
||||
// }));),
|
||||
// )
|
||||
// };
|
||||
|
||||
// let device = extra.device;
|
||||
// let enum_ = util::interrupt_ident();
|
||||
// let interrupt = &analysis.interrupts.get(&priority);
|
||||
// let pend = {
|
||||
// quote!(
|
||||
// rtic::pend(#device::#enum_::#interrupt);
|
||||
// )
|
||||
// };
|
||||
|
||||
// let (_, tupled, _, _) = util::regroup_inputs(&spawnee.inputs);
|
||||
// let inputs = util::inputs_ident(name);
|
||||
quote!(
|
||||
// unsafe {
|
||||
// use rtic::Mutex as _;
|
||||
|
||||
// let input = #tupled;
|
||||
// // // if let Some(index) = #dequeue {
|
||||
// // // #inputs.get_unchecked_mut(usize::from(index)).as_mut_ptr().write(input);
|
||||
|
||||
// // // #write_instant
|
||||
|
||||
// // // #enqueue
|
||||
|
||||
// // // #pend
|
||||
|
||||
// // // Ok(())
|
||||
// // // } else {
|
||||
// // // Err(input)
|
||||
// // // }
|
||||
// Ok(())
|
||||
// }
|
||||
)
|
||||
}
|
Loading…
Reference in a new issue