From: Martin Quinson Date: Thu, 6 Jul 2017 12:33:14 +0000 (+0200) Subject: use double for the sizes, so that 32bits simulators can send more than 4G X-Git-Tag: v3_17~435 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/6680e6504535d7e92bb13cc50c5be364ac7060d6?hp=da0c93fd67406d11975b3704c04898f8a133508c use double for the sizes, so that 32bits simulators can send more than 4G --- diff --git a/include/simgrid/s4u/Mailbox.hpp b/include/simgrid/s4u/Mailbox.hpp index f7797dd75b..9ccf53d269 100644 --- a/include/simgrid/s4u/Mailbox.hpp +++ b/include/simgrid/s4u/Mailbox.hpp @@ -149,26 +149,29 @@ public: /** 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(); - /** 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(); - /** Creates and start an async reception to that mailbox */ + /** Creates and start an async data reception to that mailbox */ CommPtr get_async(void** data); - /** Blocking reception */ + /** Blocking data reception */ void* get(); - /** Blocking reception with timeout */ + /** Blocking data reception with timeout */ void* get(double timeout); }; diff --git a/src/s4u/s4u_mailbox.cpp b/src/s4u/s4u_mailbox.cpp index b29cfcdcba..cd5b32136d 100644 --- a/src/s4u/s4u_mailbox.cpp +++ b/src/s4u/s4u_mailbox.cpp @@ -73,7 +73,7 @@ CommPtr Mailbox::put_init() 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); @@ -81,7 +81,7 @@ s4u::CommPtr Mailbox::put_init(void* data, int simulatedSize) 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();