Lines Matching full:guard
8 use super::{lock::Backend, lock::Guard, LockClassKey};
51 /// let mut guard = e.value.lock();
52 /// while *guard != v {
53 /// e.value_changed.wait(&mut guard);
105 fn wait_internal<T: ?Sized, B: Backend>(&self, wait_state: u32, guard: &mut Guard<'_, T, B>) { in wait_internal()
117 guard.do_unlocked(|| unsafe { bindings::schedule() }); in wait_internal()
125 /// Atomically releases the given lock (whose ownership is proven by the guard) and puts the
129 pub fn wait<T: ?Sized, B: Backend>(&self, guard: &mut Guard<'_, T, B>) { in wait()
130 self.wait_internal(bindings::TASK_UNINTERRUPTIBLE, guard); in wait()
140 pub fn wait_interruptible<T: ?Sized, B: Backend>(&self, guard: &mut Guard<'_, T, B>) -> bool { in wait_interruptible()
141 self.wait_internal(bindings::TASK_INTERRUPTIBLE, guard); in wait_interruptible()