From 517bc8b8f3cf99cd8e23e94a729555f11948c5a9 Mon Sep 17 00:00:00 2001 From: SUTER Frederic Date: Wed, 6 Oct 2021 14:44:55 +0200 Subject: [PATCH] deprecate 2 more SIMIX functions --- include/simgrid/plugins/ProducerConsumer.hpp | 6 +++--- include/simgrid/s4u/Comm.hpp | 2 ++ include/simgrid/simix.h | 8 ++++---- src/kernel/activity/CommImpl.cpp | 15 +++++---------- src/s4u/s4u_Comm.cpp | 16 ++++++++++++++++ src/s4u/s4u_Engine.cpp | 1 + 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/include/simgrid/plugins/ProducerConsumer.hpp b/include/simgrid/plugins/ProducerConsumer.hpp index 02c54dae73..004afcb8e3 100644 --- a/include/simgrid/plugins/ProducerConsumer.hpp +++ b/include/simgrid/plugins/ProducerConsumer.hpp @@ -6,10 +6,10 @@ #ifndef SIMGRID_PLUGIN_PRODUCERCONSUMER_HPP #define SIMGRID_PLUGIN_PRODUCERCONSUMER_HPP +#include #include #include #include -#include #include #include @@ -147,7 +147,7 @@ public: can_put_->wait(lock); if (tmode_ == TransferMode::MAILBOX) { comm = mbox_->put_init(data, simulated_size_in_bytes) - ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback) + ->set_copy_data_callback(s4u::Comm::copy_pointer_callback) ->start(); } else queue_.push(data); @@ -185,7 +185,7 @@ public: if (tmode_ == TransferMode::MAILBOX) comm = mbox_->get_init() ->set_dst_data(reinterpret_cast(data), sizeof(void*)) - ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback) + ->set_copy_data_callback(s4u::Comm::copy_pointer_callback) ->start(); else { *data = queue_.front(); diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index e45f2ae3e7..228fcec0dc 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -170,6 +170,8 @@ public: bool is_assigned() const override { return (to_ != nullptr && from_ != nullptr) || (mailbox_ != nullptr); } CommPtr set_copy_data_callback(void (*callback)(kernel::activity::CommImpl*, void*, size_t)); + static void copy_buffer_callback(kernel::activity::CommImpl*, void*, size_t); + static void copy_pointer_callback(kernel::activity::CommImpl*, void*, size_t); }; } // namespace s4u } // namespace simgrid diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 79b1e1a9e2..54a23d5f99 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -59,10 +59,10 @@ SG_END_DECL XBT_ATTRIB_DEPRECATED_v333("Please use Engine::set_default_comm_data_copy_callback()") XBT_PUBLIC void SIMIX_comm_set_copy_data_callback(void (*callback)(simgrid::kernel::activity::CommImpl*, void*, size_t)); -XBT_PUBLIC void SIMIX_comm_copy_pointer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, - size_t buff_size); -XBT_PUBLIC void SIMIX_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, - size_t buff_size); +XBT_ATTRIB_DEPRECATED_v333("Please use Comm::copy_buffer_callback()") XBT_PUBLIC + void SIMIX_comm_copy_pointer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, size_t buff_size); +XBT_ATTRIB_DEPRECATED_v333("Please use Comm::copy_pointer_callback()") XBT_PUBLIC + void SIMIX_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, size_t buff_size); #endif /******************************************************************************/ diff --git a/src/kernel/activity/CommImpl.cpp b/src/kernel/activity/CommImpl.cpp index fc67a922c8..ba477b802d 100644 --- a/src/kernel/activity/CommImpl.cpp +++ b/src/kernel/activity/CommImpl.cpp @@ -211,28 +211,23 @@ void SIMIX_comm_set_copy_data_callback(void (*callback)(simgrid::kernel::activit simgrid::kernel::activity::CommImpl::set_copy_data_callback(callback); } +// XBT_ATTRIB_DEPRECATED_v333 void SIMIX_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, size_t buff_size) { - XBT_DEBUG("Copy the data over"); - memcpy(comm->dst_buff_, buff, buff_size); - if (comm->detached()) { // if this is a detached send, the source buffer was duplicated by SMPI sender to make the - // original buffer available to the application ASAP - xbt_free(buff); - comm->src_buff_ = nullptr; - } + simgrid::s4u::Comm::copy_buffer_callback(comm, buff, buff_size); } +// XBT_ATTRIB_DEPRECATED_v333 void SIMIX_comm_copy_pointer_callback(simgrid::kernel::activity::CommImpl* comm, void* buff, size_t buff_size) { - xbt_assert((buff_size == sizeof(void*)), "Cannot copy %zu bytes: must be sizeof(void*)", buff_size); - *(void**)(comm->dst_buff_) = buff; + simgrid::s4u::Comm::copy_pointer_callback(comm, buff, buff_size); } namespace simgrid { namespace kernel { namespace activity { -void (*CommImpl::copy_data_callback_)(CommImpl*, void*, size_t) = &SIMIX_comm_copy_pointer_callback; +void (*CommImpl::copy_data_callback_)(CommImpl*, void*, size_t) = &s4u::Comm::copy_pointer_callback; void CommImpl::set_copy_data_callback(void (*callback)(CommImpl*, void*, size_t)) { diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index caf276ae59..b30f3115dd 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -321,6 +321,22 @@ CommPtr Comm::set_copy_data_callback(void (*callback)(kernel::activity::CommImpl copy_data_function_ = callback; return this; } +void Comm::copy_buffer_callback(kernel::activity::CommImpl* comm, void* buff, size_t buff_size) +{ + XBT_DEBUG("Copy the data over"); + memcpy(comm->dst_buff_, buff, buff_size); + if (comm->detached()) { // if this is a detached send, the source buffer was duplicated by SMPI sender to make the + // original buffer available to the application ASAP + xbt_free(buff); + comm->src_buff_ = nullptr; + } +} + +void Comm::copy_pointer_callback(kernel::activity::CommImpl* comm, void* buff, size_t buff_size) +{ + xbt_assert((buff_size == sizeof(void*)), "Cannot copy %zu bytes: must be sizeof(void*)", buff_size); + *(void**)(comm->dst_buff_) = buff; +} } // namespace s4u } // namespace simgrid diff --git a/src/s4u/s4u_Engine.cpp b/src/s4u/s4u_Engine.cpp index 8f2ba76a8c..249235742c 100644 --- a/src/s4u/s4u_Engine.cpp +++ b/src/s4u/s4u_Engine.cpp @@ -450,6 +450,7 @@ Engine* Engine::set_default_comm_data_copy_callback(void (*callback)(kernel::act kernel::activity::CommImpl::set_copy_data_callback(callback); return this; } + } // namespace s4u } // namespace simgrid -- 2.20.1