Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use ssize_t as return type for Comm::test_any.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 23 Jun 2021 08:23:09 +0000 (10:23 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Wed, 23 Jun 2021 09:36:36 +0000 (11:36 +0200)
include/simgrid/s4u/Comm.hpp
include/simgrid/simix.h
src/kernel/activity/CommImpl.cpp
src/kernel/activity/CommImpl.hpp
src/msg/msg_comm.cpp
src/s4u/s4u_Comm.cpp
src/simix/libsmx.cpp
src/simix/popping_accessors.hpp
src/simix/popping_bodies.cpp
src/simix/popping_generated.cpp
src/simix/simcalls.in

index 66a8c6f..7fb446f 100644 (file)
@@ -79,7 +79,7 @@ public:
    * occurs). */
   static size_t wait_all_for(const std::vector<CommPtr>& comms, double timeout);
   /*! take a vector s4u::CommPtr and return the rank of the first finished one (or -1 if none is done). */
-  static int test_any(const std::vector<CommPtr>& comms);
+  static ssize_t test_any(const std::vector<CommPtr>& comms);
 
   XBT_ATTRIB_DEPRECATED_v332("Please use a plain vector for parameter")
   static int wait_any(const std::vector<CommPtr>* comms) { return wait_any_for(*comms, -1); }
@@ -88,7 +88,7 @@ public:
   XBT_ATTRIB_DEPRECATED_v332("Please use a plain vector for parameter")
   static void wait_all(const std::vector<CommPtr>* comms) { wait_all(*comms); }
   XBT_ATTRIB_DEPRECATED_v332("Please use a plain vector for parameter")
-  static int test_any(const std::vector<CommPtr>* comms) { return test_any(*comms); }
+  static int test_any(const std::vector<CommPtr>* comms) { return static_cast<int>(test_any(*comms)); }
 
   Comm* start() override;
   Comm* wait_for(double timeout) override;
index 2f805f2..bf2486f 100644 (file)
@@ -176,7 +176,7 @@ XBT_PUBLIC void simcall_comm_wait(simgrid::kernel::activity::ActivityImpl* comm,
 XBT_PUBLIC bool simcall_comm_test(simgrid::kernel::activity::ActivityImpl* comm);
 XBT_ATTRIB_DEPRECATED_v330("Please use a CommImpl*[] for first parameter") XBT_PUBLIC
     int simcall_comm_testany(simgrid::kernel::activity::ActivityImplPtr comms[], size_t count);
-XBT_PUBLIC int simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t count);
+XBT_PUBLIC ssize_t simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t count);
 
 XBT_ATTRIB_DEPRECATED_v330("Please use an ActivityImpl* for first parameter") inline void simcall_comm_wait(
     const simgrid::kernel::activity::ActivityImplPtr& comm, double timeout)
index 2164bc8..e3ea115 100644 (file)
@@ -190,7 +190,7 @@ bool simcall_HANDLER_comm_test(smx_simcall_t, simgrid::kernel::activity::CommImp
   return comm->test();
 }
 
-int simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comms[], size_t count)
+ssize_t simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comms[], size_t count)
 {
   std::vector<simgrid::kernel::activity::CommImpl*> comms_vec(comms, comms + count);
   return simgrid::kernel::activity::CommImpl::test_any(simcall->issuer_, comms_vec);
@@ -422,7 +422,7 @@ void CommImpl::wait_for(actor::ActorImpl* issuer, double timeout)
   }
 }
 
-int CommImpl::test_any(const actor::ActorImpl* issuer, const std::vector<CommImpl*>& comms)
+ssize_t CommImpl::test_any(const actor::ActorImpl* issuer, const std::vector<CommImpl*>& comms)
 {
   if (MC_is_active() || MC_record_replay_is_active()) {
     int idx = issuer->simcall_.mc_value_;
index 6f8770a..475eda9 100644 (file)
@@ -52,7 +52,7 @@ public:
 
   bool test() override;
   void wait_for(actor::ActorImpl* issuer, double timeout) override;
-  static int test_any(const actor::ActorImpl* issuer, const std::vector<CommImpl*>& comms);
+  static ssize_t test_any(const actor::ActorImpl* issuer, const std::vector<CommImpl*>& comms);
   static void wait_any_for(actor::ActorImpl* issuer, const std::vector<CommImpl*>& comms, double timeout);
 
   CommImpl* start();
index fd36e6e..274358f 100644 (file)
@@ -84,7 +84,7 @@ int MSG_comm_test(msg_comm_t comm)
  */
 int MSG_comm_testany(const_xbt_dynar_t comms)
 {
-  int finished_index = -1;
+  ssize_t finished_index = -1;
 
   /* Create the equivalent array with SIMIX objects: */
   std::vector<simgrid::kernel::activity::CommImpl*> s_comms;
@@ -120,7 +120,7 @@ int MSG_comm_testany(const_xbt_dynar_t comms)
     }
   }
 
-  return finished_index;
+  return static_cast<int>(finished_index);
 }
 
 /** @brief Destroys the provided communication. */
index 6dca641..4568159 100644 (file)
@@ -245,12 +245,12 @@ Comm* Comm::wait_for(double timeout)
   return this;
 }
 
-int Comm::test_any(const std::vector<CommPtr>& comms)
+ssize_t Comm::test_any(const std::vector<CommPtr>& comms)
 {
   std::vector<kernel::activity::CommImpl*> rcomms(comms.size());
   std::transform(begin(comms), end(comms), begin(rcomms),
                  [](const CommPtr& comm) { return static_cast<kernel::activity::CommImpl*>(comm->pimpl_.get()); });
-  int changed_pos = simcall_comm_testany(rcomms.data(), rcomms.size());
+  ssize_t changed_pos = simcall_comm_testany(rcomms.data(), rcomms.size());
   if (changed_pos != -1)
     comms.at(changed_pos)->complete(State::FINISHED);
   return changed_pos;
index 2744ea4..b327f59 100644 (file)
@@ -210,10 +210,10 @@ int simcall_comm_testany(simgrid::kernel::activity::ActivityImplPtr comms[], siz
   std::transform(comms, comms + count, begin(rcomms), [](const simgrid::kernel::activity::ActivityImplPtr& comm) {
     return static_cast<simgrid::kernel::activity::CommImpl*>(comm.get());
   });
-  return simcall_BODY_comm_testany(rcomms.data(), rcomms.size());
+  return static_cast<int>(simcall_BODY_comm_testany(rcomms.data(), rcomms.size()));
 }
 
-int simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t count)
+ssize_t simcall_comm_testany(simgrid::kernel::activity::CommImpl* comms[], size_t count)
 {
   if (count == 0)
     return -1;
index 78757f9..44c49db 100644 (file)
@@ -548,17 +548,17 @@ static inline void simcall_comm_testany__set__count(smx_simcall_t simcall, size_
 {
   simgrid::simix::marshal<size_t>(simcall->args_[1], arg);
 }
-static inline int simcall_comm_testany__get__result(smx_simcall_t simcall)
+static inline ssize_t simcall_comm_testany__get__result(smx_simcall_t simcall)
 {
-  return simgrid::simix::unmarshal<int>(simcall->result_);
+  return simgrid::simix::unmarshal<ssize_t>(simcall->result_);
 }
-static inline int simcall_comm_testany__getraw__result(smx_simcall_t simcall)
+static inline ssize_t simcall_comm_testany__getraw__result(smx_simcall_t simcall)
 {
-  return simgrid::simix::unmarshal_raw<int>(simcall->result_);
+  return simgrid::simix::unmarshal_raw<ssize_t>(simcall->result_);
 }
-static inline void simcall_comm_testany__set__result(smx_simcall_t simcall, int result)
+static inline void simcall_comm_testany__set__result(smx_simcall_t simcall, ssize_t result)
 {
-  simgrid::simix::marshal<int>(simcall->result_, result);
+  simgrid::simix::marshal<ssize_t>(simcall->result_, result);
 }
 
 static inline simgrid::kernel::activity::CommImpl** simcall_comm_waitany__get__comms(smx_simcall_t simcall)
@@ -668,6 +668,6 @@ XBT_PRIVATE boost::intrusive_ptr<simgrid::kernel::activity::ActivityImpl> simcal
 XBT_PRIVATE void simcall_HANDLER_comm_send(smx_simcall_t simcall, smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, unsigned char* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout);
 XBT_PRIVATE boost::intrusive_ptr<simgrid::kernel::activity::ActivityImpl> simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, unsigned char* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, bool detached);
 XBT_PRIVATE bool simcall_HANDLER_comm_test(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comm);
-XBT_PRIVATE int simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl** comms, size_t count);
+XBT_PRIVATE ssize_t simcall_HANDLER_comm_testany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl** comms, size_t count);
 XBT_PRIVATE void simcall_HANDLER_comm_waitany(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl** comms, size_t count, double timeout);
 XBT_PRIVATE void simcall_HANDLER_comm_wait(smx_simcall_t simcall, simgrid::kernel::activity::CommImpl* comm, double timeout);
index d9be221..bb48811 100644 (file)
@@ -75,11 +75,11 @@ inline static bool simcall_BODY_comm_test(simgrid::kernel::activity::CommImpl* c
   return simcall<bool, simgrid::kernel::activity::CommImpl*>(Simcall::COMM_TEST, comm);
 }
 
-inline static int simcall_BODY_comm_testany(simgrid::kernel::activity::CommImpl** comms, size_t count)
+inline static ssize_t simcall_BODY_comm_testany(simgrid::kernel::activity::CommImpl** comms, size_t count)
 {
   if (false) /* Go to that function to follow the code flow through the simcall barrier */
     simcall_HANDLER_comm_testany(&SIMIX_process_self()->simcall_, comms, count);
-  return simcall<int, simgrid::kernel::activity::CommImpl**, size_t>(Simcall::COMM_TESTANY, comms, count);
+  return simcall<ssize_t, simgrid::kernel::activity::CommImpl**, size_t>(Simcall::COMM_TESTANY, comms, count);
 }
 
 inline static int simcall_BODY_comm_waitany(simgrid::kernel::activity::CommImpl** comms, size_t count, double timeout)
index 9b9a7b5..20efc2d 100644 (file)
@@ -79,7 +79,7 @@ void simgrid::kernel::actor::ActorImpl::simcall_handle(int times_considered)
       break;
 
     case Simcall::COMM_TESTANY:
-      simgrid::simix::marshal<int>(simcall_.result_, simcall_HANDLER_comm_testany(&simcall_, simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl**>(simcall_.args_[0]), simgrid::simix::unmarshal<size_t>(simcall_.args_[1])));
+      simgrid::simix::marshal<ssize_t>(simcall_.result_, simcall_HANDLER_comm_testany(&simcall_, simgrid::simix::unmarshal<simgrid::kernel::activity::CommImpl**>(simcall_.args_[0]), simgrid::simix::unmarshal<size_t>(simcall_.args_[1])));
       simcall_answer();
       break;
 
index 5571691..db4bfbf 100644 (file)
@@ -40,7 +40,7 @@ boost::intrusive_ptr<simgrid::kernel::activity::ActivityImpl> comm_irecv(smx_act
 void           comm_send(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, unsigned char* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_copy_data_func_t copy_data_fun, void* data, double timeout) [[block]];
 boost::intrusive_ptr<simgrid::kernel::activity::ActivityImpl> comm_isend(smx_actor_t sender, smx_mailbox_t mbox, double task_size, double rate, unsigned char* src_buff, size_t src_buff_size, simix_match_func_t match_fun, simix_clean_func_t clean_fun, simix_copy_data_func_t copy_data_fun, void* data, bool detached);
 bool           comm_test(simgrid::kernel::activity::CommImpl* comm);
-int            comm_testany(simgrid::kernel::activity::CommImpl** comms, size_t count);
+ssize_t        comm_testany(simgrid::kernel::activity::CommImpl** comms, size_t count);
 int            comm_waitany(simgrid::kernel::activity::CommImpl** comms, size_t count, double timeout) [[block]];
 void           comm_wait(simgrid::kernel::activity::CommImpl* comm, double timeout) [[block]];