From be5257a0719791277ac5e87131bf1635acfc9885 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Sun, 29 Jul 2018 00:24:54 +0200 Subject: [PATCH] test exec->cancel() and simplify another test --- examples/s4u/exec-async/s4u-exec-async.cpp | 12 ++++++++++++ examples/s4u/exec-async/s4u-exec-async.tesh | 3 +++ examples/s4u/exec-basic/s4u-exec-basic.cpp | 10 ++++------ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/examples/s4u/exec-async/s4u-exec-async.cpp b/examples/s4u/exec-async/s4u-exec-async.cpp index 6794d5b25e..cb11ce2d49 100644 --- a/examples/s4u/exec-async/s4u-exec-async.cpp +++ b/examples/s4u/exec-async/s4u-exec-async.cpp @@ -18,12 +18,24 @@ static void test(double computation_amount, double priority) XBT_INFO("Goodbye now!"); } +static void test_cancel(double computation_amount) +{ + XBT_INFO("Hello! Execute %g flops, should take 1 second", computation_amount); + simgrid::s4u::ExecPtr activity = simgrid::s4u::this_actor::exec_async(computation_amount); + simgrid::s4u::this_actor::sleep_for(0.5); + XBT_INFO("I changed my mind, cancel!"); + activity->cancel(); + + XBT_INFO("Goodbye now!"); +} + int main(int argc, char* argv[]) { simgrid::s4u::Engine e(&argc, argv); e.load_platform(argv[1]); simgrid::s4u::Actor::create("test", simgrid::s4u::Host::by_name("Fafard"), test, 7.6296e+07, 1.0); simgrid::s4u::Actor::create("test", simgrid::s4u::Host::by_name("Fafard"), test, 7.6296e+07, 2.0); + simgrid::s4u::Actor::create("test_cancel", simgrid::s4u::Host::by_name("Boivin"), test_cancel, 98.095e+07); e.run(); diff --git a/examples/s4u/exec-async/s4u-exec-async.tesh b/examples/s4u/exec-async/s4u-exec-async.tesh index e77373825e..3246fae43a 100644 --- a/examples/s4u/exec-async/s4u-exec-async.tesh +++ b/examples/s4u/exec-async/s4u-exec-async.tesh @@ -4,6 +4,9 @@ $ $SG_TEST_EXENV ${bindir:=.}/s4u-exec-async$EXEEXT ${platfdir}/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" > [ 0.000000] (1:test@Fafard) Hello! Execute 7.6296e+07 flops with priority 1 > [ 0.000000] (2:test@Fafard) Hello! Execute 7.6296e+07 flops with priority 2 +> [ 0.000000] (3:test_cancel@Boivin) Hello! Execute 9.8095e+08 flops, should take 1 second +> [ 0.500000] (3:test_cancel@Boivin) I changed my mind, cancel! +> [ 0.500000] (3:test_cancel@Boivin) Goodbye now! > [ 1.500000] (2:test@Fafard) Goodbye now! > [ 2.000000] (0:maestro@) Simulation time 2 > [ 2.000000] (1:test@Fafard) Goodbye now! diff --git a/examples/s4u/exec-basic/s4u-exec-basic.cpp b/examples/s4u/exec-basic/s4u-exec-basic.cpp index 4fd33fa784..c27bb2d85c 100644 --- a/examples/s4u/exec-basic/s4u-exec-basic.cpp +++ b/examples/s4u/exec-basic/s4u-exec-basic.cpp @@ -7,7 +7,7 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example"); -static int executor(std::vector /*args*/) +static void executor() { /* this_actor::execute() tells SimGrid to pause the calling actor * until its host has computed the amount of flops passed as a parameter */ @@ -15,10 +15,9 @@ static int executor(std::vector /*args*/) XBT_INFO("Done."); /* This simple example does not do anything beyond that */ - return 0; } -static int privileged(std::vector /*args*/) +static void privileged() { /* This version of this_actor::execute() specifies that this execution * gets a larger share of the resource. @@ -34,7 +33,6 @@ static int privileged(std::vector /*args*/) * because the uneven sharing only last until the privileged actor ends. * After this point, the unprivileged one gets 100% of the CPU and finishes * quite quickly. */ - return 0; } int main(int argc, char* argv[]) @@ -45,8 +43,8 @@ int main(int argc, char* argv[]) e.load_platform(argv[1]); - simgrid::s4u::Actor::create("executor", simgrid::s4u::Host::by_name("Tremblay"), executor, args); - simgrid::s4u::Actor::create("privileged", simgrid::s4u::Host::by_name("Tremblay"), privileged, args); + simgrid::s4u::Actor::create("executor", simgrid::s4u::Host::by_name("Tremblay"), executor); + simgrid::s4u::Actor::create("privileged", simgrid::s4u::Host::by_name("Tremblay"), privileged); e.run(); -- 2.20.1