X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dee33fe0e35a8737c785e3fb82083a2e7da49597..9b57381fd90f9a91865c5224c63a45c9bd766a5f:/src/smpi/smpi_receiver.c diff --git a/src/smpi/smpi_receiver.c b/src/smpi/smpi_receiver.c index 43990a5f6b..4f214184c0 100644 --- a/src/smpi/smpi_receiver.c +++ b/src/smpi/smpi_receiver.c @@ -50,8 +50,6 @@ int smpi_receiver(int argc, char **argv) SIMIX_mutex_unlock(smpi_global->start_stop_mutex); do { - request = NULL; - message = NULL; // FIXME: better algorithm, maybe some kind of balanced tree? or a heap? @@ -71,11 +69,17 @@ int smpi_receiver(int argc, char **argv) (MPI_ANY_SOURCE == request->src || request->src == message->src) && (MPI_ANY_TAG == request->tag || request->tag == message->tag)) { xbt_fifo_remove_item(request_queue, request_item); + xbt_fifo_free_item(request_item); xbt_fifo_remove_item(message_queue, message_item); + xbt_fifo_free_item(message_item); goto stopsearch; } } } + + request = NULL; + message = NULL; + stopsearch: SIMIX_mutex_unlock(message_queue_mutex); SIMIX_mutex_unlock(request_queue_mutex);