X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a181dd511948fe35733ca7bc5c0a3e95d10722b1..62534c29d0fe83dbec6b7e7642d2ecbe100f3d7b:/src/instr/instr_platform.cpp diff --git a/src/instr/instr_platform.cpp b/src/instr/instr_platform.cpp index 244240c1a6..5ec364e698 100644 --- a/src/instr/instr_platform.cpp +++ b/src/instr/instr_platform.cpp @@ -8,6 +8,7 @@ #include "simgrid/kernel/routing/NetPoint.hpp" #include "simgrid/kernel/routing/NetZoneImpl.hpp" #include "simgrid/s4u/Actor.hpp" +#include "simgrid/s4u/Comm.hpp" #include "simgrid/s4u/Engine.hpp" #include "simgrid/s4u/Exec.hpp" #include "simgrid/s4u/Host.hpp" @@ -371,6 +372,11 @@ void instr_define_callbacks() if (TRACE_actor_is_enabled()) { simgrid::s4u::Actor::on_creation.connect(instr_actor_on_creation); + simgrid::s4u::Actor::on_destruction.connect([](simgrid::s4u::ActorPtr actor) { + auto container = simgrid::instr::Container::by_name_or_null(instr_pid(actor.get())); + if (container != nullptr) + container->remove_from_parent(); + }); simgrid::s4u::Actor::on_suspend.connect([](simgrid::s4u::ActorPtr actor) { simgrid::instr::Container::by_name(instr_pid(actor.get()))->get_state("ACTOR_STATE")->push_event("suspend"); }); @@ -389,6 +395,15 @@ void instr_define_callbacks() simgrid::s4u::Exec::on_completion.connect([](simgrid::s4u::ActorPtr actor) { simgrid::instr::Container::by_name(instr_pid(actor.get()))->get_state("ACTOR_STATE")->pop_event(); }); + simgrid::s4u::Comm::on_sender_start.connect([](simgrid::s4u::ActorPtr actor) { + simgrid::instr::Container::by_name(instr_pid(actor.get()))->get_state("ACTOR_STATE")->push_event("send"); + }); + simgrid::s4u::Comm::on_receiver_start.connect([](simgrid::s4u::ActorPtr actor) { + simgrid::instr::Container::by_name(instr_pid(actor.get()))->get_state("ACTOR_STATE")->push_event("receive"); + }); + simgrid::s4u::Comm::on_completion.connect([](simgrid::s4u::ActorPtr actor) { + simgrid::instr::Container::by_name(instr_pid(actor.get()))->get_state("ACTOR_STATE")->pop_event(); + }); simgrid::s4u::Actor::on_migration_start.connect(instr_actor_on_migration_start); simgrid::s4u::Actor::on_migration_end.connect(instr_actor_on_migration_end); }