A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
simplify the actor finalization a tiny bit by using a callback
[simgrid.git]
/
src
/
instr
/
instr_platform.cpp
diff --git
a/src/instr/instr_platform.cpp
b/src/instr/instr_platform.cpp
index
1901f25
..
5ec364e
100644
(file)
--- a/
src/instr/instr_platform.cpp
+++ b/
src/instr/instr_platform.cpp
@@
-372,6
+372,11
@@
void instr_define_callbacks()
if (TRACE_actor_is_enabled()) {
simgrid::s4u::Actor::on_creation.connect(instr_actor_on_creation);
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");
});
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");
});