From: SUTER Frederic Date: Mon, 16 Aug 2021 18:09:42 +0000 (+0200) Subject: modernize SIMIX_comm_set_copy_data_callback X-Git-Tag: v3.29~126^2~20 X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/eedf325e2b621e88da9704ad43df252e55a7d92b modernize SIMIX_comm_set_copy_data_callback --- diff --git a/include/simgrid/s4u/Engine.hpp b/include/simgrid/s4u/Engine.hpp index 074a242bc5..a494fa05a2 100644 --- a/include/simgrid/s4u/Engine.hpp +++ b/include/simgrid/s4u/Engine.hpp @@ -189,6 +189,7 @@ public: static void set_config(const std::string& name, double value); static void set_config(const std::string& name, const std::string& value); + Engine* set_default_comm_data_copy_callback(void (*callback)(kernel::activity::CommImpl*, void*, size_t)); /** Callback fired when the platform is created (ie, the xml file parsed), * right before the actual simulation starts. */ static xbt::signal on_platform_created; diff --git a/include/simgrid/simix.h b/include/simgrid/simix.h index 8009151397..69488a240b 100644 --- a/include/simgrid/simix.h +++ b/include/simgrid/simix.h @@ -58,8 +58,9 @@ SG_END_DECL /****************************** Communication *********************************/ #ifdef __cplusplus -XBT_PUBLIC void SIMIX_comm_set_copy_data_callback(void (*callback)(simgrid::kernel::activity::CommImpl*, void*, - size_t)); +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, diff --git a/src/s4u/s4u_Engine.cpp b/src/s4u/s4u_Engine.cpp index b2807da97b..7d2b5b40f8 100644 --- a/src/s4u/s4u_Engine.cpp +++ b/src/s4u/s4u_Engine.cpp @@ -16,6 +16,7 @@ #include "simgrid/simix.h" #include "src/instr/instr_private.hpp" #include "src/kernel/EngineImpl.hpp" +#include "src/kernel/activity/CommImpl.hpp" #include "src/mc/mc_replay.hpp" #include "src/surf/network_interface.hpp" #include "surf/surf.hpp" // routing_platf. FIXME:KILLME. SOON @@ -443,6 +444,11 @@ void Engine::set_config(const std::string& name, const std::string& value) config::set_value(name.c_str(), value); } +Engine* Engine::set_default_comm_data_copy_callback(void (*callback)(kernel::activity::CommImpl*, void*, size_t)) +{ + kernel::activity::CommImpl::set_copy_data_callback(callback); + return this; +} } // namespace s4u } // namespace simgrid diff --git a/src/smpi/internals/smpi_global.cpp b/src/smpi/internals/smpi_global.cpp index 1f5d7902bc..ba896e884c 100644 --- a/src/smpi/internals/smpi_global.cpp +++ b/src/smpi/internals/smpi_global.cpp @@ -552,7 +552,7 @@ int smpi_main(const char* executable, int argc, char* argv[]) sg_storage_file_system_init(); // parse the platform file: get the host list engine->load_platform(argv[1]); - simgrid::kernel::activity::CommImpl::set_copy_data_callback(smpi_comm_copy_buffer_callback); + engine->set_default_comm_data_copy_callback(smpi_comm_copy_buffer_callback); if (smpi_cfg_privatization() == SmpiPrivStrategies::DLOPEN) smpi_init_privatization_dlopen(executable);