X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9a35e3d4e5aed80e7b3fab624547ab045dc00f8a..76bb3df276161c7ae9e6fa1e81057adc9671704e:/src/instr/instr_paje_containers.cpp diff --git a/src/instr/instr_paje_containers.cpp b/src/instr/instr_paje_containers.cpp index 0680d8c9d3..941f2decfa 100644 --- a/src/instr/instr_paje_containers.cpp +++ b/src/instr/instr_paje_containers.cpp @@ -13,15 +13,15 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_paje_containers, instr, "Paje tracing eve static container_t rootContainer = nullptr; /* the root container */ static std::map allContainers; /* all created containers indexed by name */ -long long int instr_new_paje_id () +namespace simgrid { +namespace instr { + +long long int new_paje_id() { static long long int type_id = 0; return type_id++; } -namespace simgrid { -namespace instr { - Container* Container::get_root() { return rootContainer; @@ -91,6 +91,10 @@ Container::~Container() // remove me from the allContainers data structure allContainers.erase(name_); + // obligation to dump previous events because they might reference the container that is about to be destroyed + last_timestamp_to_dump = SIMIX_get_clock(); + dump_buffer(true); + on_destruction(*this); } @@ -136,5 +140,13 @@ VariableType* Container::get_variable(const std::string& name) { return static_cast(type_->by_name(name)->set_calling_container(this)); } + +EntityValue::EntityValue(const std::string& name, const std::string& color, Type* father) + : name_(name), color_(color), father_(father) +{ + id_ = simgrid::instr::new_paje_id(); + on_creation(*this); +} + } // namespace instr } // namespace simgrid