Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use double for the sizes, so that 32bits simulators can send more than 4G
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 6 Jul 2017 12:33:14 +0000 (14:33 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 6 Jul 2017 12:42:47 +0000 (14:42 +0200)
include/simgrid/s4u/Mailbox.hpp
src/s4u/s4u_mailbox.cpp

index f7797dd..9ccf53d 100644 (file)
@@ -149,26 +149,29 @@ public:
   /** Return the actor declared as permanent receiver, or nullptr if none **/
   ActorPtr getReceiver();
 
   /** Return the actor declared as permanent receiver, or nullptr if none **/
   ActorPtr getReceiver();
 
-  /** Creates (but don't start) an emission to that mailbox */
+  /** Creates (but don't start) a data emission to that mailbox */
   CommPtr put_init();
   CommPtr put_init();
-  /** Creates (but don't start) an emission to that mailbox */
-  CommPtr put_init(void* data, int simulatedByteAmount);
-  /** Creates and start an async emission to that mailbox */
-  CommPtr put_async(void* data, int simulatedByteAmount);
+  /** Creates (but don't start) a data emission to that mailbox */
+  CommPtr put_init(void* data, double simulatedSizeInBytes);
+  /** Creates and start a data emission to that mailbox */
+  CommPtr put_async(void* data, double simulatedSizeInBytes);
 
 
-  /** Blocking put */
-  void put(void* payload, double simulatedSize);
-  /** Blocking put with timeout */
-  void put(void* payload, double simulatedSize, double timeout);
+  /** Blocking data emission
+   *
+   * simulatedSizeInBytes must be a double so that you can send more than 4Gb even if the simulator runs on 32 bits
+   */
+  void put(void* payload, double simulatedSizeInBytes);
+  /** Blocking data emission with timeout */
+  void put(void* payload, double simulatedSizeInBytes, double timeout);
 
 
-  /** Creates (but don't start) a reception onto that mailbox */
+  /** Creates (but don't start) a data reception onto that mailbox */
   CommPtr get_init();
   CommPtr get_init();
-  /** Creates and start an async reception to that mailbox */
+  /** Creates and start an async data reception to that mailbox */
   CommPtr get_async(void** data);
 
   CommPtr get_async(void** data);
 
-  /** Blocking reception */
+  /** Blocking data reception */
   void* get();
   void* get();
-  /** Blocking reception with timeout */
+  /** Blocking data reception with timeout */
   void* get(double timeout);
 };
 
   void* get(double timeout);
 };
 
index b29cfcd..cd5b321 100644 (file)
@@ -73,7 +73,7 @@ CommPtr Mailbox::put_init()
   res->mailbox_ = this;
   return res;
 }
   res->mailbox_ = this;
   return res;
 }
-s4u::CommPtr Mailbox::put_init(void* data, int simulatedSize)
+s4u::CommPtr Mailbox::put_init(void* data, double simulatedSize)
 {
   s4u::CommPtr res = put_init();
   res->setRemains(simulatedSize);
 {
   s4u::CommPtr res = put_init();
   res->setRemains(simulatedSize);
@@ -81,7 +81,7 @@ s4u::CommPtr Mailbox::put_init(void* data, int simulatedSize)
   res->srcBuffSize_ = sizeof(void*);
   return res;
 }
   res->srcBuffSize_ = sizeof(void*);
   return res;
 }
-s4u::CommPtr Mailbox::put_async(void* data, int simulatedSize)
+s4u::CommPtr Mailbox::put_async(void* data, double simulatedSize)
 {
   s4u::CommPtr res = put_init(data, simulatedSize);
   res->start();
 {
   s4u::CommPtr res = put_init(data, simulatedSize);
   res->start();