X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f0534a5e2af72c36c12d55f7ea323040e6e9bf36..f5f38e5b9cdacbf1ba1705bb7ed592b59f8e8712:/examples/cpp/io-dependent/s4u-io-dependent.cpp diff --git a/examples/cpp/io-dependent/s4u-io-dependent.cpp b/examples/cpp/io-dependent/s4u-io-dependent.cpp index c86a78c2c3..f64c4c2e46 100644 --- a/examples/cpp/io-dependent/s4u-io-dependent.cpp +++ b/examples/cpp/io-dependent/s4u-io-dependent.cpp @@ -12,16 +12,12 @@ namespace sg4 = simgrid::s4u; static void test() { - std::vector pending_activities; - sg4::ExecPtr bob_compute = sg4::this_actor::exec_init(1e9); - pending_activities.push_back(boost::dynamic_pointer_cast(bob_compute)); sg4::IoPtr bob_write = sg4::Host::current()->get_disks().front()->io_init(4000000, sg4::Io::OpType::WRITE); - pending_activities.push_back(boost::dynamic_pointer_cast(bob_write)); sg4::IoPtr carl_read = sg4::Host::by_name("carl")->get_disks().front()->io_init(4000000, sg4::Io::OpType::READ); - pending_activities.push_back(boost::dynamic_pointer_cast(carl_read)); sg4::ExecPtr carl_compute = sg4::Host::by_name("carl")->exec_init(1e9); - pending_activities.push_back(boost::dynamic_pointer_cast(carl_compute)); + + sg4::ActivitySet pending_activities ({bob_compute, bob_write, carl_read, carl_compute}); // Name the activities (for logging purposes only) bob_compute->set_name("bob compute"); @@ -45,9 +41,9 @@ static void test() // wait for the completion of all activities while (not pending_activities.empty()) { - ssize_t changed_pos = sg4::Activity::wait_any(pending_activities); - XBT_INFO("Activity '%s' is complete", pending_activities[changed_pos]->get_cname()); - pending_activities.erase(pending_activities.begin() + changed_pos); + auto completed_one = pending_activities.wait_any(); + if (completed_one != nullptr) + XBT_INFO("Activity '%s' is complete", completed_one->get_cname()); } }