Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
better handling of size at creation
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 3 Aug 2018 07:10:07 +0000 (09:10 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 3 Aug 2018 07:10:07 +0000 (09:10 +0200)
include/simgrid/s4u/Io.hpp
src/s4u/s4u_Io.cpp
src/s4u/s4u_Storage.cpp

index ea92b92..6052171 100644 (file)
@@ -15,7 +15,7 @@ namespace simgrid {
 namespace s4u {
 
 class XBT_PUBLIC Io : public Activity {
 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);
 public:
   friend XBT_PUBLIC void intrusive_ptr_release(simgrid::s4u::Io* i);
   friend XBT_PUBLIC void intrusive_ptr_add_ref(simgrid::s4u::Io* i);
index 5f6303f..88d78a7 100644 (file)
@@ -16,6 +16,7 @@ namespace s4u {
 
 Activity* Io::start()
 {
 
 Activity* Io::start()
 {
+  set_remaining(size_);
   pimpl_ = simix::simcall([this] { return SIMIX_io_start(name_, size_, storage_, type_); });
   state_ = State::STARTED;
   return this;
   pimpl_ = simix::simcall([this] { return SIMIX_io_start(name_, size_, storage_, type_); });
   state_ = State::STARTED;
   return this;
index 2b6b7f5..d1b2aa5 100644 (file)
@@ -58,10 +58,8 @@ void Storage::set_property(std::string key, std::string value)
 
 IoPtr Storage::io_init(sg_size_t size)
 {
 
 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->storage_ = this;
-  res->set_remaining(size);
   return res;
 }
 
   return res;
 }