From: Arnaud Giersch Date: Wed, 8 Mar 2023 15:36:13 +0000 (+0100) Subject: Inline s4u::Comm::copy_pointer_callback which is the default callback. X-Git-Tag: v3.34~358 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3b9e80123591ec2f74060d8c828e6f645e2b5a79 Inline s4u::Comm::copy_pointer_callback which is the default callback. --- diff --git a/include/simgrid/plugins/ProducerConsumer.hpp b/include/simgrid/plugins/ProducerConsumer.hpp index 55dc6d6644..b6af5a432a 100644 --- a/include/simgrid/plugins/ProducerConsumer.hpp +++ b/include/simgrid/plugins/ProducerConsumer.hpp @@ -149,7 +149,6 @@ public: can_put_->wait(lock); if (tmode_ == TransferMode::MAILBOX) { comm = mbox_->put_init(data, simulated_size_in_bytes) - ->set_copy_data_callback(s4u::Comm::copy_pointer_callback) ->start(); } else queue_.push(data); @@ -187,7 +186,6 @@ public: if (tmode_ == TransferMode::MAILBOX) comm = mbox_->get_init() ->set_dst_data(reinterpret_cast(data), sizeof(void*)) - ->set_copy_data_callback(s4u::Comm::copy_pointer_callback) ->start(); else { *data = queue_.front(); diff --git a/src/kernel/activity/CommImpl.cpp b/src/kernel/activity/CommImpl.cpp index 4c1deb7cb5..44ec50b4fd 100644 --- a/src/kernel/activity/CommImpl.cpp +++ b/src/kernel/activity/CommImpl.cpp @@ -23,7 +23,11 @@ namespace simgrid::kernel::activity { xbt::signal CommImpl::on_start; xbt::signal CommImpl::on_completion; -std::function CommImpl::copy_data_callback_ = &s4u::Comm::copy_pointer_callback; +std::function CommImpl::copy_data_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; +}; void CommImpl::set_copy_data_callback(const std::function& callback) {