title: How to read from a mio TcpStream with a timeout?
body: <p>I'm using <a href="https://github.com/dpc/mioco" rel="noreferrer">Mioco</a>. <code>mio::net::tcp::TcpStream</code> does not implement <code>Clone</code>, so it seems that it's not possible to share a <code>TcpStream</code> across multiple threads/coroutines (or if it is possible, I'm not sure how; I'm pretty new to Rust). I've hence assumed that for simultaneous reading/writing to a single <code>TcpStream</code>, it's necessary to use a single coroutine to do both the reading and writing. </p>
  
  <p>In order to avoid blocking indefinitely on reading when incoming data is infrequent, it seems like it would be necessary to use a timeout when reading from the <code>TcpStream</code>. <code>std::net::TcpStream</code> has <code>set_read_timeout</code> for achieving this, but I can't find an equivalent for <code>mio::net::tcp::TcpStream</code>. How would I go about this? Or is there a way to share the mio <code>TcpStream</code> across multiple coroutines, avoiding the need for a timeout?</p>