X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e9a86ac48ea8d06ddebe18744c40548a9f65956f..be5257a0719791277ac5e87131bf1635acfc9885:/examples/s4u/exec-async/s4u-exec-async.cpp 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();