title: MPI_Recv is not blocking
body: <p>I have a MPI_Isend and MPI_Recv program.
  Assume that i have 2 processors and both of them are like this.</p>
  
  <ol>
  <li>MPI_Isend</li>
  <li>MPI_Recv</li>
  <li>MPI_Wait</li>
  </ol>
  
  <p>What i expect from this is sending the data on both processors without blocking. Then wait for the data to come. Then resume, like this.</p>
  
  <ol>
  <li>0 sends to 1</li>
  <li>1 sends to 0</li>
  <li>0 receives from 1</li>
  <li>1 receives from 0</li>
  </ol>
  
  <p>But what i get is this.</p>
  
  <ol>
  <li>0 sends to 1</li>
  <li>0 receives from 1 (although 1 didn't send!)</li>
  <li>1 sends to 0 (now it sends)</li>
  <li>1 receives from 0</li>
  </ol>
  
  <p>I thought that MPI_Recv should wait until the data comes. What may be causing this?</p>