pub struct Ref<'a, T> { /* private fields */ }
Expand description
Returns a reference to the inner value.
Outstanding borrows hold a read lock on the inner value. This means that long lived borrows could cause the produce half to block. It is recommended to keep the borrow as short lived as possible.
The priority policy of the lock is dependent on the underlying lock
implementation, and this type does not guarantee that any particular policy
will be used. In particular, a producer which is waiting to acquire the lock
in send
might or might not block concurrent calls to borrow
, e.g.:
Potential deadlock example
// Task 1 (on thread A) | // Task 2 (on thread B)
let _ref1 = rx.borrow(); |
| // will block
| let _ = tx.send(());
// may deadlock |
let _ref2 = rx.borrow(); |
Trait Implementations
Auto Trait Implementations
impl<'a, T> RefUnwindSafe for Ref<'a, T> where
T: RefUnwindSafe,
impl<'a, T> !Send for Ref<'a, T>
impl<'a, T> Sync for Ref<'a, T> where
T: Sync,
impl<'a, T> Unpin for Ref<'a, T>
impl<'a, T> UnwindSafe for Ref<'a, T> where
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more