From: Frederic Suter Date: Fri, 3 Aug 2018 07:10:07 +0000 (+0200) Subject: better handling of size at creation X-Git-Tag: v3_21~302^2^2 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e9119c20b55464a6a1c867edc1a7a2d95b070847 better handling of size at creation --- diff --git a/include/simgrid/s4u/Io.hpp b/include/simgrid/s4u/Io.hpp index ea92b923ff..6052171851 100644 --- a/include/simgrid/s4u/Io.hpp +++ b/include/simgrid/s4u/Io.hpp @@ -15,7 +15,7 @@ namespace simgrid { namespace s4u { class XBT_PUBLIC Io : public Activity { - Io() : Activity() {} + explicit Io(sg_size_t size) : Activity(), size_(size) {} public: friend XBT_PUBLIC void intrusive_ptr_release(simgrid::s4u::Io* i); friend XBT_PUBLIC void intrusive_ptr_add_ref(simgrid::s4u::Io* i); diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index 5f6303fd55..88d78a7040 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -16,6 +16,7 @@ namespace s4u { Activity* Io::start() { + set_remaining(size_); pimpl_ = simix::simcall([this] { return SIMIX_io_start(name_, size_, storage_, type_); }); state_ = State::STARTED; return this; diff --git a/src/s4u/s4u_Storage.cpp b/src/s4u/s4u_Storage.cpp index 2b6b7f5724..d1b2aa5597 100644 --- a/src/s4u/s4u_Storage.cpp +++ b/src/s4u/s4u_Storage.cpp @@ -58,10 +58,8 @@ void Storage::set_property(std::string key, std::string value) IoPtr Storage::io_init(sg_size_t size) { - IoPtr res = IoPtr(new Io()); - res->size_ = size; + IoPtr res = IoPtr(new Io(size)); res->storage_ = this; - res->set_remaining(size); return res; }