From 6680e6504535d7e92bb13cc50c5be364ac7060d6 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 6 Jul 2017 14:33:14 +0200 Subject: [PATCH] use double for the sizes, so that 32bits simulators can send more than 4G --- include/simgrid/s4u/Mailbox.hpp | 29 ++++++++++++++++------------- src/s4u/s4u_mailbox.cpp | 4 ++-- 2 files changed, 18 insertions(+), 15 deletions(-) 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(); -- 2.20.1