X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f0534a5e2af72c36c12d55f7ea323040e6e9bf36..09392faf42646e631a4e42553e901410eb3e488e:/src/s4u/s4u_Io.cpp diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index 691be4a34f..c20e891862 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -3,6 +3,7 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ +#include #include #include #include @@ -89,17 +90,23 @@ Io* Io::do_start() pimpl_->suspend(); state_ = State::STARTED; - on_start(*this); - on_this_start(*this); + fire_on_start(); + fire_on_this_start(); return this; } -ssize_t Io::wait_any_for(const std::vector& ios, double timeout) +ssize_t Io::deprecated_wait_any_for(const std::vector& ios, double timeout) // XBT_ATTRIB_DEPRECATED_v339 { - std::vector activities; + ActivitySet set; for (const auto& io : ios) - activities.push_back(boost::dynamic_pointer_cast(io)); - return Activity::wait_any_for(activities, timeout); + set.push(io); + + auto* ret = set.wait_any_for(timeout).get(); + for (size_t i = 0; i < ios.size(); i++) + if (ios[i].get() == ret) + return i; + + return -1; } IoPtr Io::set_disk(const_sg_disk_t disk)