Hi all, 

I have a MPI_Isend/MPI_Recv problem in  a multi-thread program. 

In the program:
    The first machine has one thread does some computation and call MPI_Isend to send buffer to the second machine, and another thread is always trying toMPI_Recv data from the second machine. And the first thread will MPI_Wait its last MPI_Isend to complete before call MPI_Isend again.
    The second machine does the exact same thing.

Then I got the result that : 
The first machine
    Thread 0 : MPI_Isend data to the second machine successfully. but blocked in MPI_Wait because last MPI_Isend did not complete. 
    Thread 1 : try to MPI_Recv data from the second machine, but no data and it blocked. 
The second machine
    Thread 0 : MPI_Isend data to the first machine successfully. but blocked in MPI_Wait because last MPI_Isend did not complete. 
    Thread 1 : try to MPI_Recv data from the first machine, but no data and it blocked. 

Does anyone have any ideas?   I appreciated it very much, because I have tracked the problem for two days but no progress. 

Eason Zhao