pub fn unbounded_channel<T>() -> (Sender<T>, Receiver<T>)
Expand description

Creates an MPMC channel that is a bit slower than the fast_channel but doesn’t have a limit on the number of messages held at a given time and therefore doesn’t block when sending. Creates a channel of unbounded capacity.

This channel has a growable buffer that can hold any number of messages at a time.

Examples

use std::thread;
use crossbeam_channel::unbounded;

let (s, r) = unbounded();

// Computes the n-th Fibonacci number.
fn fib(n: i32) -> i32 {
    if n <= 1 {
        n
    } else {
        fib(n - 1) + fib(n - 2)
    }
}

// Spawn an asynchronous computation.
thread::spawn(move || s.send(fib(20)).unwrap());

// Print the result of the computation.
println!("{}", r.recv().unwrap());