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);
Activity* Io::start()
{
+ set_remaining(size_);
pimpl_ = simix::simcall([this] { return SIMIX_io_start(name_, size_, storage_, type_); });
state_ = State::STARTED;
return this;
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;
}