X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1363ce9624f4327f3ad5c934b15736a776637dfd..9afa0d0db01da2ae64e48fb594cc87c186dde192:/examples/cpp/task-switch-host/s4u-task-switch-host.cpp?ds=sidebyside diff --git a/examples/cpp/task-switch-host/s4u-task-switch-host.cpp b/examples/cpp/task-switch-host/s4u-task-switch-host.cpp index 252f3382e3..c236bdbdb9 100644 --- a/examples/cpp/task-switch-host/s4u-task-switch-host.cpp +++ b/examples/cpp/task-switch-host/s4u-task-switch-host.cpp @@ -52,14 +52,21 @@ int main(int argc, char* argv[]) // Add a function to be called before each firing of comm0 // This function modifies the graph of tasks by adding or removing // successors to comm0 - comm0->on_this_start_cb([comm0, exec1, exec2, jupiter, fafard](sg4::Task*) { + comm0->on_this_start_cb([&comm0, exec1, exec2, jupiter, fafard](const sg4::Task*) { static int count = 0; - if (count % 2 == 0) { + if (count % 2 == 0) comm0->set_destination(jupiter); + else + comm0->set_destination(fafard); + count++; + }); + + comm0->on_this_completion_cb([&comm0, exec1, exec2](const sg4::Task*) { + static int count = 0; + if (count % 2 == 0) { comm0->add_successor(exec1); comm0->remove_successor(exec2); } else { - comm0->set_destination(fafard); comm0->add_successor(exec2); comm0->remove_successor(exec1); }