From 186f52d7500aa4220832a8fcb27e1008cb11155d Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 27 Mar 2017 14:11:51 +0200 Subject: [PATCH] one more conversion --- teshsuite/s4u/CMakeLists.txt | 4 +- .../s4u/host_on_off_wait/host_on_off_wait.cpp | 41 +++++++++++++++++++ .../host_on_off_wait/host_on_off_wait.tesh | 6 +++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp create mode 100644 teshsuite/s4u/host_on_off_wait/host_on_off_wait.tesh diff --git a/teshsuite/s4u/CMakeLists.txt b/teshsuite/s4u/CMakeLists.txt index 06301505b5..09970ca19e 100644 --- a/teshsuite/s4u/CMakeLists.txt +++ b/teshsuite/s4u/CMakeLists.txt @@ -1,4 +1,4 @@ -foreach(x actor concurrent_rw listen_async pid) +foreach(x actor concurrent_rw host_on_off_wait listen_async pid) add_executable (${x} ${x}/${x}.cpp) target_link_libraries(${x} simgrid) set_target_properties(${x} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x}) @@ -11,6 +11,6 @@ set(teshsuite_src ${teshsuite_src} PARENT_SCOPE) set(tesh_files ${tesh_files} PARENT_SCOPE) set(xml_files ${xml_files} PARENT_SCOPE) -foreach(x actor concurrent_rw listen_async pid) +foreach(x actor concurrent_rw host_on_off_wait listen_async pid) ADD_TESH_FACTORIES(tesh-s4u-${x} "thread;boost;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/s4u/${x} --cd ${CMAKE_BINARY_DIR}/teshsuite/s4u/${x} ${CMAKE_HOME_DIRECTORY}/teshsuite/s4u/${x}/${x}.tesh) endforeach() 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 new file mode 100644 index 0000000000..31f1bbc2e8 --- /dev/null +++ b/teshsuite/s4u/host_on_off_wait/host_on_off_wait.cpp @@ -0,0 +1,41 @@ +/* Copyright (c) 2010-2015. 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" + +XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); + +static void master() +{ + simgrid::s4u::Host* jupiter = simgrid::s4u::Host::by_name("Jupiter"); + XBT_INFO("Master waiting"); + simgrid::s4u::this_actor::sleep_for(1); + + XBT_INFO("Turning off the worker host"); + jupiter->turnOff(); + 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."); +} + +int main(int argc, char* argv[]) +{ + simgrid::s4u::Engine* e = new simgrid::s4u::Engine(&argc, argv); + e->loadPlatform(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); + + e->run(); + XBT_INFO("Simulation time %g", e->getClock()); + return 0; +} diff --git a/teshsuite/s4u/host_on_off_wait/host_on_off_wait.tesh b/teshsuite/s4u/host_on_off_wait/host_on_off_wait.tesh new file mode 100644 index 0000000000..98e272af6c --- /dev/null +++ b/teshsuite/s4u/host_on_off_wait/host_on_off_wait.tesh @@ -0,0 +1,6 @@ +$ ./host_on_off_wait ${srcdir:=.}/../../../examples/platforms/small_platform.xml +> [Tremblay:master:(0) 0.000000] [s4u_test/INFO] Master waiting +> [Jupiter:worker:(0) 0.000000] [s4u_test/INFO] Worker waiting +> [Tremblay:master:(0) 1.000000] [s4u_test/INFO] Turning off the worker host +> [Tremblay:master:(0) 1.000000] [s4u_test/INFO] Master has finished +> [1.000000] [s4u_test/INFO] Simulation time 1 -- 2.20.1