Lines Matching refs:B
36 pub struct GlobalLock<B: GlobalLockBackend> {
37 inner: Lock<B::Item, B::Backend>,
40 impl<B: GlobalLockBackend> GlobalLock<B> {
47 pub const unsafe fn new(data: B::Item) -> Self { in new()
71 B::Backend::init( in init()
73 B::NAME.as_char_ptr(), in init()
74 B::get_lock_class().as_ptr(), in init()
80 pub fn lock(&'static self) -> GlobalGuard<B> { in lock() argument
87 pub fn try_lock(&'static self) -> Option<GlobalGuard<B>> { in try_lock() argument
97 pub struct GlobalGuard<B: GlobalLockBackend> {
98 inner: Guard<'static, B::Item, B::Backend>,
101 impl<B: GlobalLockBackend> core::ops::Deref for GlobalGuard<B> {
102 type Target = B::Item;
109 impl<B: GlobalLockBackend> core::ops::DerefMut for GlobalGuard<B>
111 B::Item: Unpin,
121 pub struct GlobalLockedBy<T: ?Sized, B: GlobalLockBackend> {
122 _backend: PhantomData<B>,
127 unsafe impl<T, B> Send for GlobalLockedBy<T, B>
130 B: GlobalLockBackend,
131 LockedBy<T, B::Item>: Send,
136 unsafe impl<T, B> Sync for GlobalLockedBy<T, B>
139 B: GlobalLockBackend,
140 LockedBy<T, B::Item>: Sync,
144 impl<T, B: GlobalLockBackend> GlobalLockedBy<T, B> {
156 impl<T: ?Sized, B: GlobalLockBackend> GlobalLockedBy<T, B> {
160 pub fn as_ref<'a>(&'a self, _guard: &'a GlobalGuard<B>) -> &'a T { in as_ref()
168 pub fn as_mut<'a>(&'a self, _guard: &'a mut GlobalGuard<B>) -> &'a mut T { in as_mut()