From 500d56f4d9b6e10ad5bfa2b96e0154f212a3a505 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 23 Jun 2021 10:23:09 +0200 Subject: [PATCH 1/1] Use ssize_t as return type for Comm::test_any. --- include/simgrid/s4u/Comm.hpp | 4 ++-- include/simgrid/simix.h | 2 +- src/kernel/activity/CommImpl.cpp | 4 ++-- src/kernel/activity/CommImpl.hpp | 2 +- src/msg/msg_comm.cpp | 4 ++-- src/s4u/s4u_Comm.cpp | 4 ++-- src/simix/libsmx.cpp | 4 ++-- src/simix/popping_accessors.hpp | 14 +++++++------- src/simix/popping_bodies.cpp | 4 ++-- src/simix/popping_generated.cpp | 2 +- src/simix/simcalls.in | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index 66a8c6f694..7fb446f409 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -79,7 +79,7 @@ public: * occurs). */ static size_t wait_all_for(const std::vector& 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& comms); + static ssize_t test_any(const std::vector& comms); XBT_ATTRIB_DEPRECATED_v332("Please use a plain vector for parameter") static int wait_any(const std::vector* 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* comms) { wait_all(*comms); } XBT_ATTRIB_DEPRECATED_v332("Please use a plain vector for parameter") - static int test_any(const std::vector* comms) { return test_any(*comms); } + static int test_any(const std::vector* comms) { return static_cast(test_any(*comms)); } Comm* start() override; Comm* wait_for(double timeout) override; diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 2f805f2b14..bf2486fe4a 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -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) diff --git a/src/kernel/activity/CommImpl.cpp b/src/kernel/activity/CommImpl.cpp index 2164bc8ae3..e3ea115191 100644 --- a/src/kernel/activity/CommImpl.cpp +++ b/src/kernel/activity/CommImpl.cpp @@ -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 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& comms) +ssize_t CommImpl::test_any(const actor::ActorImpl* issuer, const std::vector& comms) { if (MC_is_active() || MC_record_replay_is_active()) { int idx = issuer->simcall_.mc_value_; diff --git a/src/kernel/activity/CommImpl.hpp b/src/kernel/activity/CommImpl.hpp index 6f8770a199..475eda9a04 100644 --- a/src/kernel/activity/CommImpl.hpp +++ b/src/kernel/activity/CommImpl.hpp @@ -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& comms); + static ssize_t test_any(const actor::ActorImpl* issuer, const std::vector& comms); static void wait_any_for(actor::ActorImpl* issuer, const std::vector& comms, double timeout); CommImpl* start(); diff --git a/src/msg/msg_comm.cpp b/src/msg/msg_comm.cpp index fd36e6e6eb..274358f7d7 100644 --- a/src/msg/msg_comm.cpp +++ b/src/msg/msg_comm.cpp @@ -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 s_comms; @@ -120,7 +120,7 @@ int MSG_comm_testany(const_xbt_dynar_t comms) } } - return finished_index; + return static_cast(finished_index); } /** @brief Destroys the provided communication. */ diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index 6dca641353..45681595d6 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -245,12 +245,12 @@ Comm* Comm::wait_for(double timeout) return this; } -int Comm::test_any(const std::vector& comms) +ssize_t Comm::test_any(const std::vector& comms) { std::vector rcomms(comms.size()); std::transform(begin(comms), end(comms), begin(rcomms), [](const CommPtr& comm) { return static_cast(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; diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 2744ea4336..b327f59938 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -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(comm.get()); }); - return simcall_BODY_comm_testany(rcomms.data(), rcomms.size()); + return static_cast(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; diff --git a/src/simix/popping_accessors.hpp b/src/simix/popping_accessors.hpp index 78757f909b..44c49db9ae 100644 --- a/src/simix/popping_accessors.hpp +++ b/src/simix/popping_accessors.hpp @@ -548,17 +548,17 @@ static inline void simcall_comm_testany__set__count(smx_simcall_t simcall, size_ { simgrid::simix::marshal(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(simcall->result_); + return simgrid::simix::unmarshal(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(simcall->result_); + return simgrid::simix::unmarshal_raw(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(simcall->result_, result); + simgrid::simix::marshal(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 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 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); diff --git a/src/simix/popping_bodies.cpp b/src/simix/popping_bodies.cpp index d9be2217f8..bb48811434 100644 --- a/src/simix/popping_bodies.cpp +++ b/src/simix/popping_bodies.cpp @@ -75,11 +75,11 @@ inline static bool simcall_BODY_comm_test(simgrid::kernel::activity::CommImpl* c return simcall(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(Simcall::COMM_TESTANY, comms, count); + return simcall(Simcall::COMM_TESTANY, comms, count); } inline static int simcall_BODY_comm_waitany(simgrid::kernel::activity::CommImpl** comms, size_t count, double timeout) diff --git a/src/simix/popping_generated.cpp b/src/simix/popping_generated.cpp index 9b9a7b5d8f..20efc2d88b 100644 --- a/src/simix/popping_generated.cpp +++ b/src/simix/popping_generated.cpp @@ -79,7 +79,7 @@ void simgrid::kernel::actor::ActorImpl::simcall_handle(int times_considered) break; case Simcall::COMM_TESTANY: - simgrid::simix::marshal(simcall_.result_, simcall_HANDLER_comm_testany(&simcall_, simgrid::simix::unmarshal(simcall_.args_[0]), simgrid::simix::unmarshal(simcall_.args_[1]))); + simgrid::simix::marshal(simcall_.result_, simcall_HANDLER_comm_testany(&simcall_, simgrid::simix::unmarshal(simcall_.args_[0]), simgrid::simix::unmarshal(simcall_.args_[1]))); simcall_answer(); break; diff --git a/src/simix/simcalls.in b/src/simix/simcalls.in index 5571691e0e..db4bfbf3c0 100644 --- a/src/simix/simcalls.in +++ b/src/simix/simcalls.in @@ -40,7 +40,7 @@ boost::intrusive_ptr 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 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]]; -- 2.20.1