Function futures::sync::oneshot::channel [] [src]

pub fn channel<T>() -> (Sender<T>, Receiver<T>)

Creates a new futures-aware, one-shot channel.

This function is similar to Rust's channels found in the standard library. Two halves are returned, the first of which is a Sender handle, used to signal the end of a computation and provide its value. The second half is a Receiver which implements the Future trait, resolving to the value that was given to the Sender handle.

Each half can be separately owned and sent across threads/tasks.

Examples

use std::thread;
use futures::sync::oneshot;
use futures::*;

let (c, p) = oneshot::channel::<i32>();

thread::spawn(|| {
    p.map(|i| {
        println!("got: {}", i);
    }).wait();
});

c.complete(3);