Type Definition kernel::sync::RevocableMutex
source · [−]Expand description
A revocable mutex.
That is, a mutex to which access can be revoked at runtime. It is a specialisation of the more
generic super::revocable::Revocable
.
Examples
struct Example {
a: u32,
b: u32,
}
fn read_sum(v: &RevocableMutex<Example>) -> Option<u32> {
let guard = v.try_write()?;
Some(guard.a + guard.b)
}
// SAFETY: We call `revocable_init` immediately below.
let mut v = unsafe { RevocableMutex::new(Example { a: 10, b: 20 }) };
// SAFETY: We never move out of `v`.
let pinned = unsafe { Pin::new_unchecked(&mut v) };
revocable_init!(pinned, "example::v");
assert_eq!(read_sum(&v), Some(30));
v.revoke();
assert_eq!(read_sum(&v), None);