Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Added missing MPI call.
[simgrid.git] / src / smpi / smpi_base.c
index dc608cd..e82e6d0 100644 (file)
@@ -58,6 +58,10 @@ static MPI_Request build_request(void* buf, int count, MPI_Datatype datatype, in
   request->complete = 0;
   request->match = MPI_REQUEST_NULL;
   request->flags = flags;
+#ifdef HAVE_TRACING
+  request->send = 0;
+  request->recv = 0;
+#endif
   return request;
 }
 
@@ -154,11 +158,16 @@ void smpi_mpi_sendrecv(void* sendbuf, int sendcount, MPI_Datatype sendtype, int
   }
 }
 
+int smpi_mpi_get_count(MPI_Status* status, MPI_Datatype datatype) {
+   return status->count / smpi_datatype_size(datatype);
+}
+
 static void finish_wait(MPI_Request* request, MPI_Status* status) {
   if(status != MPI_STATUS_IGNORE) {
     status->MPI_SOURCE = (*request)->src;
     status->MPI_TAG = (*request)->tag;
     status->MPI_ERROR = MPI_SUCCESS;
+    status->count = SIMIX_communication_get_dst_buf_size((*request)->pair);
   }
   print_request("finishing wait", *request);
   if((*request)->complete == 1) {