Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
smpi: fix issue with message IDs. In case of persistent request reused multiple times...
[simgrid.git] / src / smpi / include / smpi_request.hpp
index f3089c6..5b3962c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2023. 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. */
@@ -11,8 +11,7 @@
 
 #include <memory>
 
-namespace simgrid{
-namespace smpi{
+namespace simgrid::smpi {
 
 struct smpi_mpi_generalized_request_funcs_t {
   MPI_Grequest_query_function *query_fn;
@@ -48,10 +47,11 @@ class Request : public F2C {
   bool detached_;
   MPI_Request detached_sender_;
   int refcount_;
+  std::vector<unsigned int> message_id_;
   MPI_Op op_;
   std::unique_ptr<smpi_mpi_generalized_request_funcs_t> generalized_funcs;
   std::vector<MPI_Request> nbc_requests_;
-  s4u::Host* src_host_ = nullptr; //!< save simgrid's source host since it can finished before the recv
+  s4u::Host* src_host_ = nullptr; //!< save SimGrid's source host since it can finished before the recv
   static bool match_common(MPI_Request req, MPI_Request sender, MPI_Request receiver);
   static bool match_types(MPI_Datatype stype, MPI_Datatype rtype);
 
@@ -67,7 +67,7 @@ public:
   int tag() const { return tag_; }
   int flags() const { return flags_; }
   bool detached() const { return detached_; }
-  std::string name() const override { return std::string("MPI_Request"); }
+  std::string name() const override { return "MPI_Request"; }
   MPI_Datatype type() const { return type_; }
   void print_request(const char* message) const;
   void start();
@@ -128,8 +128,6 @@ public:
   static Request* f2c(int);
 };
 
-
-}
-}
+} // namespace simgrid::smpi
 
 #endif