drop global critical sections in checked::Resource

This commit is contained in:
Jorge Aparicio 2017-04-07 19:33:08 -05:00
parent 185f368d63
commit 6ac2625a75

View file

@ -10,25 +10,16 @@ use vcell::VolatileCell;
use Ceiling;
unsafe fn acquire(locked: &VolatileCell<bool>, ceiling: u8) -> u8 {
interrupt::free(
|_| {
assert!(!locked.get(), "resource already locked");
let old_basepri = basepri::read();
basepri_max::write(ceiling);
locked.set(true);
old_basepri
},
)
}
unsafe fn release(locked: &VolatileCell<bool>, old_basepri: u8) {
// XXX Is it really memory safe to *not* use a global critical section here
// interrupt::free(
// |_| {
locked.set(false);
basepri::write(old_basepri);
// },
// );
}
/// A totally safe `Resource` that panics on misuse