aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar pln <Per Lindgren> 2017-04-21 14:56:15 +0200
committerGravatar pln <Per Lindgren> 2017-04-21 14:56:15 +0200
commit8547ef73f39ec7ca533461284f5cd779db747b76 (patch)
tree19c11bb7624c411b137183afdb7f7de9559df6c3
parent9ede9215c27c12bec08dc96023ab9c1d0509057e (diff)
downloadrtic-next_claim_failed.tar.gz
rtic-next_claim_failed.tar.zst
rtic-next_claim_failed.zip
claim_mut with Rust borrow checknext_claim_failed
-rw-r--r--src/lib.rs13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/lib.rs b/src/lib.rs
index e9b1a24c..91c10eeb 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -434,7 +434,6 @@ where
/// Nem attempt
use core::cell::RefCell;
-use core::cell::RefMut;
//use core::borrow::BorrowMut;
/// A resource
@@ -556,17 +555,17 @@ impl<T, CEILING> ResRef<T, C<CEILING>> {
basepri_max::write(<CEILING>::hw());
barrier!();
- let r: &RefCell<T> = &*self.data.get();
- let rr: RefCell<T> = *r;
- let mut rm: RefMut<T> = rr.borrow_mut();
- let mut t: T = *rm;
- let ret = f(&mut t, &C { _marker: PhantomData });
+ let a = &*self.data.get();
+ let mut am = a.borrow_mut();
+ let ret = f(&mut am, &C { _marker: PhantomData });
barrier!();
basepri::write(old_basepri);
ret
} else {
- panic!("");
+ let a = &*self.data.get();
+ let mut am = a.borrow_mut();
+ f(&mut am, &C { _marker: PhantomData })
}
}
}