title: Why is scala Await.result timing out in repl when passed the same future twice?
body: <p>I found this a bit confusing. I thought futures in scala are inmutable containers that once set, always return the same value.</p>
  
  <p>So I have a future:</p>
  
  <pre><code>val y = future {Thread.sleep(1000); 1};
  </code></pre>
  
  <p>Now when i immediately (before the future resolves) pass it to <code>Await.result</code> block twice:</p>
  
  <pre><code>Await.result(for (r1 &lt;- y; r2 &lt;- y) yield (r1, r2), 60 seconds)
  </code></pre>
  
  <p>I get a <code>TimetoutException</code>.</p>
  
  <p>However if i do it once the future is resolved, everything works fine and returns <code>(1,1)</code> as expected.</p>
  
  <p>What is the reason of this behavior?</p>
  
  <p>Edit:
  I'm using implicit <code>ExecutionContext.Implicits.global</code> and <code>scala.concurrent</code> @ scala 2.10.3</p>
  
  <p>Edit2:
  If I create another future instance doing the same thing and do Await.result on them both it doesn't block.</p>