diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2017-04-13 23:00:39 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2017-04-13 23:00:39 -0500 |
| commit | fdc060c27365ebae705d78c0eda3092127ae8c3a (patch) | |
| tree | 1932cc7aa89ca6d98f57a86466b22e99d0f979de | |
| parent | 2fb00c7d85f2eee6caa0bc742afd496a6ef7f33c (diff) | |
remove system ceiling from `lock_mut` closure
now it's impossible to do a `borrow` within that critical section as a borrow of
the task priority is required (and that's already mutably borrowed by the
`lock_mut` closure)
| -rw-r--r-- | src/lib.rs | 15 |
1 files changed, 3 insertions, 12 deletions
@@ -8,8 +8,6 @@ extern crate typenum; use core::cell::UnsafeCell; use core::marker::PhantomData; -#[cfg(not(thumbv6m))] -use core::ops::Sub; use cortex_m::ctxt::Context; use cortex_m::interrupt::Nr; @@ -17,7 +15,7 @@ use cortex_m::interrupt::Nr; use cortex_m::register::{basepri, basepri_max}; use typenum::{Cmp, Equal, Unsigned}; #[cfg(not(thumbv6m))] -use typenum::{B1, Greater, Less, Sub1}; +use typenum::{Greater, Less}; pub use cortex_m::ctxt::Local; pub use cortex_m::asm::wfi; @@ -156,9 +154,8 @@ where f: F, ) -> R where - F: FnOnce(&mut T, C<Sub1<CEILING>>) -> R, + F: FnOnce(&mut T) -> R, C<CEILING>: Ceiling, - CEILING: Sub<B1>, CEILING: Cmp<PRIORITY, Output = Greater> + Cmp<UMAX, Output = Less> + Level, P<PRIORITY>: Priority, @@ -167,13 +164,7 @@ where let old_basepri = basepri::read(); basepri_max::write(<CEILING>::hw()); barrier!(); - let ret = f( - &mut *self.data.get(), - C { - _0: (), - _marker: PhantomData, - }, - ); + let ret = f(&mut *self.data.get()); barrier!(); basepri::write(old_basepri); ret |
