X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/186f52d7500aa4220832a8fcb27e1008cb11155d..453bf51afcdaf0fbb9d3ae7344836f07643e462b:/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp diff --git a/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp b/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp index 31f1bbc2e8..0ee7ad17b5 100644 --- a/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp +++ b/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp @@ -1,10 +1,10 @@ -/* Copyright (c) 2010-2015. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2010-2018. The SimGrid Team. All rights reserved. */ /* 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 "simgrid/s4u.hpp" +#include XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); @@ -15,27 +15,35 @@ static void master() simgrid::s4u::this_actor::sleep_for(1); XBT_INFO("Turning off the worker host"); - jupiter->turnOff(); + jupiter->turn_off(); XBT_INFO("Master has finished"); } static void worker() { XBT_INFO("Worker waiting"); - // TODO, This should really be MSG_HOST_FAILURE - simgrid::s4u::this_actor::sleep_for(5); - XBT_ERROR("Worker should be off already."); + try { + simgrid::s4u::this_actor::sleep_for(5); + } catch (xbt_ex& e) { + if (e.category == host_error) { + XBT_INFO("The host has died ... as expected."); + } else { + XBT_ERROR("An unexpected exception has been raised."); + throw; + } + } } int main(int argc, char* argv[]) { - simgrid::s4u::Engine* e = new simgrid::s4u::Engine(&argc, argv); - e->loadPlatform(argv[1]); + simgrid::s4u::Engine e(&argc, argv); + e.load_platform(argv[1]); - simgrid::s4u::Actor::createActor("master", simgrid::s4u::Host::by_name("Tremblay"), master); - simgrid::s4u::Actor::createActor("worker", simgrid::s4u::Host::by_name("Jupiter"), worker); + simgrid::s4u::Actor::create("master", simgrid::s4u::Host::by_name("Tremblay"), master); + simgrid::s4u::Actor::create("worker", simgrid::s4u::Host::by_name("Jupiter"), worker); + + e.run(); + XBT_INFO("Simulation time %g", e.get_clock()); - e->run(); - XBT_INFO("Simulation time %g", e->getClock()); return 0; }