X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9ceefed14c83a0f6ea5f78e3acafd53181dc4fa1..8bf7ffc43ad5507982e924a7f05bbb13c89965cb:/examples/cpp/dag-failure/s4u-dag-failure.cpp diff --git a/examples/cpp/dag-failure/s4u-dag-failure.cpp b/examples/cpp/dag-failure/s4u-dag-failure.cpp index a3da8aa40c..c2ab8d58c2 100644 --- a/examples/cpp/dag-failure/s4u-dag-failure.cpp +++ b/examples/cpp/dag-failure/s4u-dag-failure.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2006-2021. The SimGrid Team. +/* Copyright (c) 2006-2023. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -18,25 +18,22 @@ int main(int argc, char** argv) auto* faulty = e.host_by_name("Faulty Host"); auto* safe = e.host_by_name("Safe Host"); - sg4::Activity::on_completion.connect([](sg4::Activity& activity) { - auto* exec = dynamic_cast(&activity); - if (exec == nullptr) // Only Execs are concerned here - return; - if (exec->get_state() == sg4::Activity::State::FINISHED) - XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec->get_cname(), exec->get_start_time(), - exec->get_finish_time()); - if (exec->get_state() == sg4::Activity::State::FAILED) { - if (exec->is_parallel()) - XBT_INFO("Activity '%s' has failed. %.f %% remain to be done", exec->get_cname(), - 100 * exec->get_remaining_ratio()); + sg4::Exec::on_completion_cb([](sg4::Exec const& exec) { + if (exec.get_state() == sg4::Activity::State::FINISHED) + XBT_INFO("Activity '%s' is complete (start time: %f, finish time: %f)", exec.get_cname(), exec.get_start_time(), + exec.get_finish_time()); + if (exec.get_state() == sg4::Activity::State::FAILED) { + if (exec.is_parallel()) + XBT_INFO("Activity '%s' has failed. %.f %% remain to be done", exec.get_cname(), + 100 * exec.get_remaining_ratio()); else - XBT_INFO("Activity '%s' has failed. %.f flops remain to be done", exec->get_cname(), exec->get_remaining()); + XBT_INFO("Activity '%s' has failed. %.f flops remain to be done", exec.get_cname(), exec.get_remaining()); } }); /* creation of a single Exec that will poorly fail when the workstation will stop */ XBT_INFO("First test: sequential Exec activity"); - sg4::ExecPtr exec = sg4::Exec::init()->set_name("Poor task")->set_flops_amount(2e10)->vetoable_start(); + sg4::ExecPtr exec = sg4::Exec::init()->set_name("Poor task")->set_flops_amount(2e10)->start(); XBT_INFO("Schedule Activity '%s' on 'Faulty Host'", exec->get_cname()); exec->set_host(faulty); @@ -44,7 +41,7 @@ int main(int argc, char** argv) /* Add a child Exec that depends on the Poor task' */ sg4::ExecPtr child = sg4::Exec::init()->set_name("Child")->set_flops_amount(2e10)->set_host(safe); exec->add_successor(child); - child->vetoable_start(); + child->start(); XBT_INFO("Run the simulation"); e.run(); @@ -57,7 +54,7 @@ int main(int argc, char** argv) e.run(); XBT_INFO("Second test: parallel Exec activity"); - exec = sg4::Exec::init()->set_name("Poor parallel task")->set_flops_amounts({2e10, 2e10})->vetoable_start(); + exec = sg4::Exec::init()->set_name("Poor parallel task")->set_flops_amounts({2e10, 2e10})->start(); XBT_INFO("Schedule Activity '%s' on 'Safe Host' and 'Faulty Host'", exec->get_cname()); exec->set_hosts({safe, faulty}); @@ -65,7 +62,7 @@ int main(int argc, char** argv) /* Add a child Exec that depends on the Poor parallel task' */ child = sg4::Exec::init()->set_name("Child")->set_flops_amount(2e10)->set_host(safe); exec->add_successor(child); - child->vetoable_start(); + child->start(); XBT_INFO("Run the simulation"); e.run();