X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8ea2649a94e38ff0333ca955277091e7d4af8dd4..9b0d45659b3ca3d1a18fa754bb04ed74396b3bd7:/src/smpi/smpi_receiver.c diff --git a/src/smpi/smpi_receiver.c b/src/smpi/smpi_receiver.c index edfb213e3d..34a6280c1b 100644 --- a/src/smpi/smpi_receiver.c +++ b/src/smpi/smpi_receiver.c @@ -66,9 +66,12 @@ int smpi_receiver(int argc, char **argv) NULL != message_item; message_item = xbt_fifo_get_next_item(message_item)) { message = xbt_fifo_get_item_content(message_item); - if (request->comm == message->comm && - (MPI_ANY_SOURCE == request->src || request->src == message->src) && - (MPI_ANY_TAG == request->tag || request->tag == message->tag)) { + if ( + request->comm == message->comm && + (MPI_ANY_SOURCE == request->src || request->src == message->src) && + (MPI_ANY_TAG == request->tag || request->tag == message->tag) && + (message->action != SURF_ACTION_READY && message->action != SURF_ACTION_RUNNING) + ) { xbt_fifo_remove_item(request_queue, request_item); xbt_fifo_remove_item(message_queue, message_item); goto stopsearch;