Lines Matching refs:Lock
106 pub struct Lock<T: ?Sized, B: Backend> {
122 // SAFETY: `Lock` can be transferred across thread boundaries iff the data it protects can.
123 unsafe impl<T: ?Sized + Send, B: Backend> Send for Lock<T, B> {}
125 // SAFETY: `Lock` serialises the interior mutability it provides, so it is `Sync` as long as the
127 unsafe impl<T: ?Sized + Send, B: Backend> Sync for Lock<T, B> {}
129 impl<T, B: Backend> Lock<T, B> {
148 impl<B: Backend> Lock<(), B> {
149 /// Constructs a [`Lock`] from a raw pointer.
171 impl<T: ?Sized, B: Backend> Lock<T, B> {
202 pub(crate) lock: &'a Lock<T, B>,
219 /// # use kernel::{new_spinlock, sync::lock::{Backend, Guard, Lock}};
222 /// fn assert_held<T, B: Backend>(guard: &Guard<'_, T, B>, lock: &Lock<T, B>) {
237 pub fn lock_ref(&self) -> &'a Lock<T, B> {
314 pub unsafe fn new(lock: &'a Lock<T, B>, state: B::GuardState) -> Self {