title: How to make a simple futures::sync::mpsc::channel example work?
body: <p>I am trying to write a simple exmaple of <a href="https://github.com/alexcrichton/futures-rs" rel="nofollow noreferrer">futures-rs</a> mpsc queues usage:</p>
  
  <pre><code>extern crate futures; // v0.1 (old)
  
  use futures::{Sink, Stream};
  use futures::sync::mpsc;
  use std::thread;
  
  fn main() {
      let (tx, rx) = mpsc::channel::&lt;i32&gt;(1000);
  
      let handle = thread::spawn(move || {
          tx.clone().send(1);
          tx.clone().send(2);
          tx.clone().send(3);
      });
  
      let mut rx = rx.map(|x| {
          println!("stream: {}", x);
          x * x
      });
  
      handle.join().unwrap();
  
      rx.poll().unwrap();
  }
  </code></pre>
  
  <p>But it doesn't output anything to the console (I expect it to print <code>stream: 1</code>, <code>stream: 2</code> and <code>stream: 3</code>). I also tried to replace <code>rx.poll().unwrap()</code> with <code>rx.wait()</code>, but it still outputs nothing. And I didn't find any usage examples in the futures-rs docs. What am I doing wrong?</p>