wip tests do pass, Mutex based

This commit is contained in:
Per Lindgren 2021-11-03 21:44:57 +01:00
parent b138cc1631
commit d0a3d27094
7 changed files with 14 additions and 14 deletions

View file

@ -99,7 +99,7 @@ pub fn codegen(
#[allow(non_snake_case)]
fn #name(#context: #name::Context) {
use rtic::Mutex as _;
use rtic::MutexStruct as _;
// use rtic::MutexStruct as _;
use rtic::mutex_prelude::*;
#(#stmts)*

View file

@ -73,7 +73,7 @@ pub fn codegen(
#[allow(non_snake_case)]
fn #name(#context: #name::Context) -> ! {
use rtic::Mutex as _;
use rtic::MutexStruct as _;
// use rtic::MutexStruct as _;
use rtic::mutex_prelude::*;
#(#stmts)*

View file

@ -177,7 +177,7 @@ pub fn codegen(
quote!(#ident_mut<#lt>),
max_ceiling,
quote!(self.priority()),
quote!(|| { #ident_mut::new() }),
quote!(#ident_mut::new ),
),
quote!(
// Used by the lock-all API

View file

@ -132,7 +132,7 @@ pub fn codegen(
#[allow(non_snake_case)]
fn #name(#context: #name::Context #(,#inputs)*) {
use rtic::Mutex as _;
use rtic::MutexStruct as _;
// use rtic::MutexStruct as _;
use rtic::mutex_prelude::*;
#(#stmts)*

View file

@ -67,7 +67,7 @@ pub fn impl_mutex_struct(
let device = &extra.device;
quote!(
#(#cfgs)*
impl<'a> rtic::MutexStruct for #path<'a> {
impl<'a> rtic::Mutex for #path<'a> {
type T = #ty;
#[inline(always)]

View file

@ -171,7 +171,7 @@ pub unsafe fn lock<T, R>(
#[cfg(armv7m)]
#[inline(always)]
pub unsafe fn lock_struct<T, R>(
ptr: impl Fn() -> T,
ptr: unsafe fn() -> T,
priority: &Priority,
ceiling: u8,
nvic_prio_bits: u8,
@ -237,7 +237,7 @@ pub unsafe fn lock<T, R>(
#[cfg(not(armv7m))]
#[inline(always)]
pub unsafe fn lock_struct<T, R>(
ptr: impl Fn() -> T,
ptr: unsafe fn() -> T,
priority: &Priority,
ceiling: u8,
_nvic_prio_bits: u8,

View file

@ -105,11 +105,11 @@ impl<T> RacyCell<T> {
unsafe impl<T> Sync for RacyCell<T> {}
/// Should be moved to `rtic-core`
pub trait MutexStruct {
/// Data protected by the mutex
type T;
// /// Should be moved to `rtic-core`
// pub trait MutexStruct {
// /// Data protected by the mutex
// type T;
/// Creates a critical section and grants temporary access to the protected data
fn lock<R>(&mut self, f: impl FnOnce(&mut Self::T) -> R) -> R;
}
// /// Creates a critical section and grants temporary access to the protected data
// fn lock<R>(&mut self, f: impl FnOnce(&mut Self::T) -> R) -> R;
// }