Depending on the nature of the MPI_ * function that you are calling, sending will be blocked until the corresponding call is called by another process, so you need to make sure that this happens in your code. There are also non-blocking MPI_Isend f.ex function calls that give you a handle request, which you can check later to see if the process has been received by sending using the appropriate receipt.
As for your problem, you can issue a non-blocking reception (MPI_Irecv is the easiest) and check the status every n seconds depending on your application. Then the status will be completed when the message is received and ready for reading.
, . ( , OpenMPI) -, 100% - .