From: Frederic Suter Date: Thu, 4 Feb 2021 11:29:02 +0000 (+0100) Subject: test and fix Comm::set_payload_size + more chaining X-Git-Tag: v3.27~455 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/43dc8ea1eae96e9d084aaabeed9beef568a7dea6 test and fix Comm::set_payload_size + more chaining --- diff --git a/include/simgrid/s4u/Comm.hpp b/include/simgrid/s4u/Comm.hpp index e0f42aede6..c952dcf459 100644 --- a/include/simgrid/s4u/Comm.hpp +++ b/include/simgrid/s4u/Comm.hpp @@ -104,7 +104,7 @@ public: * That's the size of the simulated data, that's completely related from the actual data size (given with @ref * Comm::set_src_data_size()). */ - Comm* set_payload_size(double bytes); + CommPtr set_payload_size(double bytes); /** Specify the data to send and its size. Don't mix the size with @ref Comm::set_payload_size() * diff --git a/include/simgrid/s4u/Mailbox.hpp b/include/simgrid/s4u/Mailbox.hpp index 87fa5669a4..f42bd58038 100644 --- a/include/simgrid/s4u/Mailbox.hpp +++ b/include/simgrid/s4u/Mailbox.hpp @@ -112,8 +112,7 @@ public: template CommPtr Mailbox::get_async(T** data) { - CommPtr res = get_init(); - res->set_dst_data(reinterpret_cast(data), sizeof(void*)); + CommPtr res = get_init()->set_dst_data(reinterpret_cast(data), sizeof(void*)); res->vetoable_start(); return res; } diff --git a/src/s4u/s4u_Comm.cpp b/src/s4u/s4u_Comm.cpp index a0ee15f436..3c216b40e9 100644 --- a/src/s4u/s4u_Comm.cpp +++ b/src/s4u/s4u_Comm.cpp @@ -118,9 +118,9 @@ CommPtr Comm::set_dst_data(void** buff, size_t size) dst_buff_size_ = size; return this; } -Comm* Comm::set_payload_size(double bytes) +CommPtr Comm::set_payload_size(double bytes) { - set_remaining(bytes); + Activity::set_remaining(bytes); return this; } @@ -132,10 +132,11 @@ CommPtr Comm::sendto_init(Host* from, Host* to) return res; } + CommPtr Comm::sendto_async(Host* from, Host* to, double simulated_size_in_bytes) { - auto res = Comm::sendto_init(from, to); - res->set_remaining(simulated_size_in_bytes)->start(); + auto res = Comm::sendto_init(from, to)->set_payload_size(simulated_size_in_bytes); + res->vetoable_start(); return res; } diff --git a/src/s4u/s4u_Mailbox.cpp b/src/s4u/s4u_Mailbox.cpp index 5244567154..f5fedf7d0f 100644 --- a/src/s4u/s4u_Mailbox.cpp +++ b/src/s4u/s4u_Mailbox.cpp @@ -91,13 +91,9 @@ CommPtr Mailbox::put_init() return res; } -CommPtr Mailbox::put_init(void* data, uint64_t simulated_size_in_bytes) +CommPtr Mailbox::put_init(void* payload, uint64_t simulated_size_in_bytes) { - CommPtr res = put_init(); - res->set_remaining(simulated_size_in_bytes); - res->src_buff_ = data; - res->src_buff_size_ = sizeof(void*); - return res; + return put_init()->set_payload_size(simulated_size_in_bytes)->set_src_data(payload)->set_src_data_size(sizeof(void*)); } CommPtr Mailbox::put_async(void* payload, uint64_t simulated_size_in_bytes) @@ -112,9 +108,7 @@ void Mailbox::put(void* payload, uint64_t simulated_size_in_bytes) { xbt_assert(payload != nullptr, "You cannot send nullptr"); - CommPtr c = put_init(); - c->set_remaining(simulated_size_in_bytes); - c->set_src_data(payload); + CommPtr c = put_init()->set_payload_size(simulated_size_in_bytes)->set_src_data(payload); c->vetoable_start(); c->wait(); } @@ -123,9 +117,7 @@ void Mailbox::put(void* payload, uint64_t simulated_size_in_bytes, double timeou { xbt_assert(payload != nullptr, "You cannot send nullptr"); - CommPtr c = put_init(); - c->set_remaining(simulated_size_in_bytes); - c->set_src_data(payload); + CommPtr c = put_init()->set_payload_size(simulated_size_in_bytes)->set_src_data(payload); c->vetoable_start(); c->wait_for(timeout); }