Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s4u: use size_t for payload size instead of int and double
authorMartin Quinson <martin.quinson@loria.fr>
Thu, 6 Jul 2017 09:24:17 +0000 (11:24 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Thu, 6 Jul 2017 09:24:17 +0000 (11:24 +0200)
include/simgrid/s4u/Activity.hpp
include/simgrid/s4u/Mailbox.hpp
include/simgrid/simix.h
src/s4u/s4u_activity.cpp
src/s4u/s4u_mailbox.cpp
src/simix/libsmx.cpp

index d0c8b54..67fcbd5 100644 (file)
@@ -49,11 +49,11 @@ public:
   e_s4u_activity_state_t getState() {return state_;}
 
   /** Get the remaining amount of work that this Activity entails. When it's 0, it's done. */
-  double getRemains();
+  size_t getRemains();
   /** Set the [remaining] amount of work that this Activity will entail
    *
    * It is forbidden to change the amount of work once the Activity is started */
-  void setRemains(double remains);
+  void setRemains(size_t remains);
 
   /** Put some user data onto the Activity */
   void setUserData(void *data) {userData_=data;}
@@ -63,7 +63,7 @@ public:
 private:
   simgrid::kernel::activity::ActivityImplPtr pimpl_ = nullptr;
   e_s4u_activity_state_t state_ = inited;
-  double remains_ = 0;
+  size_t remains_                                   = 0;
   void *userData_ = nullptr;
 }; // class
 
index f7797dd..cc2b5c9 100644 (file)
@@ -152,14 +152,17 @@ public:
   /** Creates (but don't start) an emission to that mailbox */
   CommPtr put_init();
   /** Creates (but don't start) an emission to that mailbox */
-  CommPtr put_init(void* data, int simulatedByteAmount);
+  CommPtr put_init(void* payload, size_t simulatedSizeInBytes);
   /** Creates and start an async emission to that mailbox */
-  CommPtr put_async(void* data, int simulatedByteAmount);
+  CommPtr put_async(void* payload, size_t simulatedSizeInBytes);
 
-  /** Blocking put */
-  void put(void* payload, double simulatedSize);
-  /** Blocking put with timeout */
-  void put(void* payload, double simulatedSize, double timeout);
+  /** Blocking emission
+   *
+   * There is no deep-copy of the payload; the pointer is just copied to the receiving actor.
+   */
+  void put(void* payload, size_t simulatedSizeInBytes);
+  /** Blocking emission with timeout */
+  void put(void* payload, size_t simulatedSizeInBytes, double timeout);
 
   /** Creates (but don't start) a reception onto that mailbox */
   CommPtr get_init();
index 9f51fd5..0b24366 100644 (file)
@@ -229,12 +229,12 @@ SG_END_DECL()
 /************************** Comunication simcalls *****************************/
 
 XBT_PUBLIC(void)
-simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
                   size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
                   void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data, double timeout);
 
 XBT_PUBLIC(smx_activity_t)
-simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
                    size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
                    void (*clean_fun)(void*), void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data,
                    int detached);
index 157010d..a9d29bd 100644 (file)
@@ -15,7 +15,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_activity,s4u,"S4U activities");
 namespace simgrid {
 namespace s4u {
 
-void Activity::setRemains(double remains) {
+void Activity::setRemains(size_t remains)
+{
   xbt_assert(state_ == inited, "Cannot change the remaining amount of work once the Activity is started");
   remains_ = remains;
 }
index b29cfcd..1d28d1a 100644 (file)
@@ -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, size_t simulatedSize)
 {
   s4u::CommPtr res = put_init();
   res->setRemains(simulatedSize);
@@ -81,13 +81,13 @@ 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, size_t simulatedSize)
 {
   s4u::CommPtr res = put_init(data, simulatedSize);
   res->start();
   return res;
 }
-void Mailbox::put(void* payload, double simulatedSize)
+void Mailbox::put(void* payload, size_t simulatedSize)
 {
   CommPtr c = put_init();
   c->setRemains(simulatedSize);
@@ -95,7 +95,7 @@ void Mailbox::put(void* payload, double simulatedSize)
   c->wait();
 }
 /** Blocking send with timeout */
-void Mailbox::put(void* payload, double simulatedSize, double timeout)
+void Mailbox::put(void* payload, size_t simulatedSize, double timeout)
 {
   CommPtr c = put_init();
   c->setRemains(simulatedSize);
index 3ebb020..5c18964 100644 (file)
@@ -308,7 +308,7 @@ e_smx_state_t simcall_process_sleep(double duration)
 /**
  * \ingroup simix_comm_management
  */
-void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
                        size_t src_buff_size, int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
                        void (*copy_data_fun)(smx_activity_t, void*, size_t), void* data, double timeout)
 {
@@ -336,7 +336,7 @@ void simcall_comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size,
 /**
  * \ingroup simix_comm_management
  */
-smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, void* src_buff,
+smx_activity_t simcall_comm_isend(smx_actor_t sender, smx_mailbox_t mbox, size_t task_size, double rate, void* src_buff,
                                   size_t src_buff_size,
                                   int (*match_fun)(void*, void*, simgrid::kernel::activity::CommImpl*),
                                   void (*clean_fun)(void*), void (*copy_data_fun)(smx_activity_t, void*, size_t),