Struct two_lock_queue::Receiver
[−]
[src]
pub struct Receiver<T> { /* fields omitted */ }
The receiving-half of the channel.
Methods
impl<T> Receiver<T>
[src]
fn recv(&self) -> Result<T, RecvError>
Attempts to wait for a value on this receiver, returning an error if the corresponding channel has hung up.
This function will always block the current thread if there is no data
available and it's possible for more data to be sent. Once a message is
sent to the corresponding Sender
, then this receiver will wake up and
return that message.
If the corresponding Sender has disconnected, or it disconnects while
this call is blocking, this call will wake up and return Err
to indicate
that no more messages can ever be received on this channel. However,
since channels are buffered, messages sent before the disconnect will
still be properly received.
fn recv_timeout(&self, timeout: Duration) -> Result<T, RecvTimeoutError>
Attempts to wait for a value on this receiver, returning an error if the corresponding channel has hung up, or if it waits more than timeout.
This function will always block the current thread if there is no data available and it's possible for more data to be sent. Once a message is sent to the corresponding Sender, then this receiver will wake up and return that message.
If the corresponding Sender
has disconnected, or it disconnects while
this call is blocking, this call will wake up and return Err
to
indicate that no more messages can ever be received on this channel.
However, since channels are buffered, messages sent before the
disconnect will still be properly received.
fn try_recv(&self) -> Result<T, TryRecvError>
Attempts to return a pending value on this receiver without blocking
This method will never block the caller in order to wait for data to become available. Instead, this will always return immediately with a possible option of pending data on the channel.
This is useful for a flavor of "optimistic check" before deciding to block on a receiver.
fn len(&self) -> usize
Returns the number of values currently buffered by the channel
fn close(&self)
Fully close the channel
This will force close the channel even if there are outstanding Sender
and Receiver
handles. Further operations on any outstanding handle
will result in a disconnected error.
fn is_open(&self) -> bool
Returns true
if the channel is currently in an open state
Trait Implementations
impl<T> Clone for Receiver<T>
[src]
fn clone(&self) -> Receiver<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more