Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / src / simix / SynchroComm.hpp
index bdcc41e..d2c549b 100644 (file)
@@ -20,12 +20,15 @@ namespace simgrid {
 namespace simix {
 
   XBT_PUBLIC_CLASS Comm : public Synchro {
+    ~Comm();
   public:
     Comm(e_smx_comm_type_t type);
-    void suspend();
-    void resume();
+    void suspend() override;
+    void resume() override;
+    void post() override;
     void cancel();
     double remains();
+    void cleanupSurf(); // FIXME: make me protected
 
     e_smx_comm_type_t type;         /* Type of the communication (SIMIX_COMM_SEND or SIMIX_COMM_RECEIVE) */
     smx_mailbox_t mbox = nullptr;   /* Rendez-vous where the comm is queued */
@@ -35,8 +38,7 @@ namespace simix {
                                        (comm.mbox set to NULL when the communication is removed from the mailbox
                                        (used as garbage collector)) */
 #endif
-    int refcount = 1;               /* Number of processes involved in the cond */
-    int detached = 0;               /* If detached or not */
+    bool detached = false;          /* If detached or not */
 
     void (*clean_fun)(void*);       /* Function to clean the detached src_buf if something goes wrong */
     int (*match_fun)(void*,void*,smx_synchro_t);  /* Filter function used by the other side. It is used when
@@ -58,7 +60,7 @@ namespace simix {
     void *dst_buff = nullptr;
     size_t src_buff_size;
     size_t *dst_buff_size;
-    unsigned copied = 0;          /* whether the data were already copied */
+    bool copied = false;          /* whether the data were already copied */
 
     void* src_data;                 /* User data associated to communication */
     void* dst_data;