From e9119c20b55464a6a1c867edc1a7a2d95b070847 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Fri, 3 Aug 2018 09:10:07 +0200 Subject: [PATCH] better handling of size at creation --- include/simgrid/s4u/Io.hpp | 2 +- src/s4u/s4u_Io.cpp | 1 + src/s4u/s4u_Storage.cpp | 4 +--- 3 files changed, 3 insertions(+), 4 deletions(-) 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; } -- 2.20.1