From 8d2e1f8f1f50189bae187042ba931cf62e8fa895 Mon Sep 17 00:00:00 2001 From: SUTER Frederic Date: Fri, 23 Jul 2021 18:12:41 +0200 Subject: [PATCH] Make the plugin usable within a SMPI simulation --- include/simgrid/plugins/ProducerConsumer.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/simgrid/plugins/ProducerConsumer.hpp b/include/simgrid/plugins/ProducerConsumer.hpp index f446dace18..02c54dae73 100644 --- a/include/simgrid/plugins/ProducerConsumer.hpp +++ b/include/simgrid/plugins/ProducerConsumer.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -145,7 +146,9 @@ public: while (size() >= max_queue_size_) can_put_->wait(lock); if (tmode_ == TransferMode::MAILBOX) { - comm = mbox_->put_async(data, simulated_size_in_bytes); + comm = mbox_->put_init(data, simulated_size_in_bytes) + ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback) + ->start(); } else queue_.push(data); can_get_->notify_all(); @@ -180,7 +183,10 @@ public: while (empty()) can_get_->wait(lock); if (tmode_ == TransferMode::MAILBOX) - comm = mbox_->get_async(data); + comm = mbox_->get_init() + ->set_dst_data(reinterpret_cast(data), sizeof(void*)) + ->set_copy_data_callback(SIMIX_comm_copy_pointer_callback) + ->start(); else { *data = queue_.front(); queue_.pop(); -- 2.20.1