drop global critical sections in checked::Resource
@@ -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
