X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/670b0fffff17a5dc52cc41ee347aa54922d2138a..f2df13795e01302813a6aef10825ec7e922ce530:/src/smpi/smpi_pmpi.c diff --git a/src/smpi/smpi_pmpi.c b/src/smpi/smpi_pmpi.c index 349bb58e02..cfd9b5bab9 100644 --- a/src/smpi/smpi_pmpi.c +++ b/src/smpi/smpi_pmpi.c @@ -1,8 +1,8 @@ -/* Copyright (c) 2007-2013. The SimGrid Team. +/* Copyright (c) 2007-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it - * under the terms of the license (GNU LGPL) which comes with this package. */ + * under the terms of the license (GNU LGPL) which comes with this package. */ #include "private.h" #include "smpi_mpi_dt_private.h" @@ -131,7 +131,7 @@ int PMPI_Abort(MPI_Comm comm, int errorcode) double PMPI_Wtime(void) { double time; - if (smpi_process_initialized() && !smpi_process_finalized() && !smpi_sample_is_running) { + if (smpi_process_initialized() && !smpi_process_finalized() && !smpi_process_get_sampling()) { smpi_bench_end(); time = SIMIX_get_clock(); smpi_bench_begin(); @@ -1020,7 +1020,6 @@ int PMPI_Request_free(MPI_Request * request) if (*request == MPI_REQUEST_NULL) { retval = MPI_ERR_ARG; } else { - if((*request)->flags & PERSISTENT)(*request)->refcount--; smpi_mpi_request_free(request); retval = MPI_SUCCESS; } @@ -1230,9 +1229,11 @@ int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag, #ifdef HAVE_TRACING //the src may not have been known at the beginning of the recv (MPI_ANY_SOURCE) - if(status!=MPI_STATUS_IGNORE)src_traced = smpi_group_index(smpi_comm_group(comm), status->MPI_SOURCE); + if(status!=MPI_STATUS_IGNORE){ + src_traced = smpi_group_index(smpi_comm_group(comm), status->MPI_SOURCE); + TRACE_smpi_recv(rank, src_traced, rank); + } TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__); - TRACE_smpi_recv(rank, src_traced, rank); #endif } @@ -1568,7 +1569,8 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status) int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * status) { - int retval = 0; + if (index == NULL) + return MPI_ERR_ARG; smpi_bench_end(); #ifdef HAVE_TRACING @@ -1595,12 +1597,7 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,extra); #endif - if (index == NULL) { - retval = MPI_ERR_ARG; - } else { - *index = smpi_mpi_waitany(count, requests, status); - retval = MPI_SUCCESS; - } + *index = smpi_mpi_waitany(count, requests, status); #ifdef HAVE_TRACING if(*index!=MPI_UNDEFINED){ int src_traced = srcs[*index]; @@ -1623,7 +1620,7 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta } #endif smpi_bench_begin(); - return retval; + return MPI_SUCCESS; } int PMPI_Waitall(int count, MPI_Request requests[], MPI_Status status[])