Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[SMPI] Added two comments...
[simgrid.git] / src / smpi / include / smpi_request.hpp
index 5a11b2d..0a8d220 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2018. 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. */
@@ -18,8 +18,8 @@ class Request : public F2C {
     /* in the case of non-contiguous memory the user address should be keep
      * to unserialize the data inside the user memory*/
     void *old_buf_;
-    /* this let us know how to unserialize at the end of
-     * the communication*/
+    /* this is especially for derived datatypes that we need to serialize/unserialize.
+     * It let us know how to unserialize at the end of the communication */
     MPI_Datatype old_type_;
     size_t size_;
     int src_;
@@ -38,6 +38,7 @@ class Request : public F2C {
     MPI_Request detached_sender_;
     int refcount_;
     MPI_Op op_;
+    int cancelled_;
   public:
     Request()=default;
     Request(void *buf, int count, MPI_Datatype datatype, int src, int dst, int tag, MPI_Comm comm, unsigned flags);
@@ -49,8 +50,10 @@ class Request : public F2C {
     int tag();
     int flags();
     int detached();
+    MPI_Datatype type();
     void print_request(const char *message);
     void start();
+    void cancel();
 
     static void finish_wait(MPI_Request* request, MPI_Status * status);
     static void unref(MPI_Request* request);
@@ -91,7 +94,7 @@ class Request : public F2C {
     static int match_send(void* a, void* b, simgrid::kernel::activity::CommImpl* ignored);
     static int match_recv(void* a, void* b, simgrid::kernel::activity::CommImpl* ignored);
 
-    int add_f();
+    int add_f() override;
     static void free_f(int id);
     static Request* f2c(int);