From d72bc00352d78cb2d037eeff71ef743e13b28c54 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 30 Oct 2017 14:46:17 +0100 Subject: [PATCH] simplify the way states are used in high-level instr modules --- src/instr/instr_interface.cpp | 16 +++---- src/instr/instr_paje_containers.cpp | 7 +++ src/instr/instr_paje_containers.hpp | 2 + src/instr/instr_paje_types.cpp | 17 ++++---- src/instr/instr_paje_types.hpp | 14 +++--- src/msg/instr_msg_process.cpp | 38 +++++----------- src/msg/instr_msg_task.cpp | 48 +++++++-------------- src/msg/msg_private.hpp | 2 +- src/msg/msg_vm.cpp | 20 +++------ src/smpi/internals/instr_smpi.cpp | 67 ++++++++++------------------- 10 files changed, 90 insertions(+), 141 deletions(-) diff --git a/src/instr/instr_interface.cpp b/src/instr/instr_interface.cpp index 17c13fc993..e05d9c5e09 100644 --- a/src/instr/instr_interface.cpp +++ b/src/instr/instr_interface.cpp @@ -942,10 +942,10 @@ void TRACE_host_state_declare_value (const char *state, const char *value, const */ void TRACE_host_set_state(const char* host, const char* state_name, const char* value_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::StateType* state = static_cast(container->type_->byName(state_name)); + container_t container = simgrid::instr::Container::byName(host); + simgrid::instr::StateType* state = container->getState(state_name); state->addEntityValue(value_name); - state->setEvent(MSG_get_clock(), container, value_name); + state->setEvent(value_name); } /** \ingroup TRACE_user_variables @@ -961,10 +961,10 @@ void TRACE_host_set_state(const char* host, const char* state_name, const char* */ void TRACE_host_push_state(const char* host, const char* state_name, const char* value_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::StateType* state = static_cast(container->type_->byName(state_name)); + container_t container = simgrid::instr::Container::byName(host); + simgrid::instr::StateType* state = container->getState(state_name); state->addEntityValue(value_name); - state->pushEvent(MSG_get_clock(), container, value_name); + state->pushEvent(value_name); } /** \ingroup TRACE_user_variables @@ -979,9 +979,7 @@ void TRACE_host_push_state(const char* host, const char* state_name, const char* */ void TRACE_host_pop_state(const char* host, const char* state_name) { - container_t container = simgrid::instr::Container::byName(host); - simgrid::instr::StateType* state = static_cast(container->type_->byName(state_name)); - state->popEvent(MSG_get_clock(), container); + simgrid::instr::Container::byName(host)->getState(state_name)->popEvent(); } /** \ingroup TRACE_API diff --git a/src/instr/instr_paje_containers.cpp b/src/instr/instr_paje_containers.cpp index 2b16c72199..40b6fb0889 100644 --- a/src/instr/instr_paje_containers.cpp +++ b/src/instr/instr_paje_containers.cpp @@ -225,5 +225,12 @@ void Container::logDestruction() THROW_IMPOSSIBLE; } } + +StateType* Container::getState(std::string name) +{ + StateType* ret = dynamic_cast(type_->byName(name)); + ret->setCallingContainer(this); + return ret; +} } } diff --git a/src/instr/instr_paje_containers.hpp b/src/instr/instr_paje_containers.hpp index 8f3fc3f001..d18ddde09e 100644 --- a/src/instr/instr_paje_containers.hpp +++ b/src/instr/instr_paje_containers.hpp @@ -12,6 +12,7 @@ namespace simgrid { namespace instr { class Type; +class StateType; class Container { long long int id_; @@ -34,6 +35,7 @@ public: void logCreation(); void logDestruction(); + StateType* getState(std::string name); static Container* getRootContainer(); }; diff --git a/src/instr/instr_paje_types.cpp b/src/instr/instr_paje_types.cpp index c842064bdf..e9bd24f378 100644 --- a/src/instr/instr_paje_types.cpp +++ b/src/instr/instr_paje_types.cpp @@ -61,24 +61,25 @@ StateType::~StateType() events_.clear(); } -void StateType::setEvent(double timestamp, Container* container, std::string value_name) +void StateType::setEvent(std::string value_name) { - events_.push_back(new StateEvent(timestamp, container, this, PAJE_SetState, getEntityValue(value_name))); + events_.push_back(new StateEvent(SIMIX_get_clock(), issuer_, this, PAJE_SetState, getEntityValue(value_name))); } -void StateType::pushEvent(double timestamp, Container* container, std::string value_name, void* extra) +void StateType::pushEvent(std::string value_name, void* extra) { - events_.push_back(new StateEvent(timestamp, container, this, PAJE_PushState, getEntityValue(value_name), extra)); + events_.push_back( + new StateEvent(SIMIX_get_clock(), issuer_, this, PAJE_PushState, getEntityValue(value_name), extra)); } -void StateType::pushEvent(double timestamp, Container* container, std::string value_name) +void StateType::pushEvent(std::string value_name) { - events_.push_back(new StateEvent(timestamp, container, this, PAJE_PushState, getEntityValue(value_name))); + events_.push_back(new StateEvent(SIMIX_get_clock(), issuer_, this, PAJE_PushState, getEntityValue(value_name))); } -void StateType::popEvent(double timestamp, Container* container) +void StateType::popEvent() { - events_.push_back(new StateEvent(timestamp, container, this, PAJE_PopState, nullptr)); + events_.push_back(new StateEvent(SIMIX_get_clock(), issuer_, this, PAJE_PopState, nullptr)); } VariableType::VariableType(std::string name, std::string color, Type* father) : Type(name, name, color, father) diff --git a/src/instr/instr_paje_types.hpp b/src/instr/instr_paje_types.hpp index c8c7a4c518..10916d912a 100644 --- a/src/instr/instr_paje_types.hpp +++ b/src/instr/instr_paje_types.hpp @@ -40,11 +40,13 @@ public: bool isColored() { return not color_.empty(); } Type* byName(std::string name); - ContainerType* getOrCreateContainerType(std::string name); EventType* getOrCreateEventType(std::string name); LinkType* getOrCreateLinkType(std::string name, Type* source, Type* dest); + StateType* getOrCreateStateType(std::string name); + StateType* getState(std::string name); + VariableType* getOrCreateVariableType(std::string name, std::string color); void logDefinition(e_event_type event_type); @@ -100,14 +102,16 @@ public: class StateType : public ValueType { std::vector events_; + Container* issuer_ = nullptr; public: StateType(std::string name, Type* father); ~StateType(); - void setEvent(double timestamp, Container* container, std::string value_name); - void pushEvent(double timestamp, Container* container, std::string value_name); - void pushEvent(double timestamp, Container* container, std::string value_name, void* extra); - void popEvent(double timestamp, Container* container); + void setCallingContainer(Container* container) { issuer_ = container; } + void setEvent(std::string value_name); + void pushEvent(std::string value_name); + void pushEvent(std::string value_name, void* extra); + void popEvent(); }; } } diff --git a/src/msg/instr_msg_process.cpp b/src/msg/instr_msg_process.cpp index c3e5b86856..2066f50c0f 100644 --- a/src/msg/instr_msg_process.cpp +++ b/src/msg/instr_msg_process.cpp @@ -10,7 +10,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_msg_process, instr, "MSG process"); -std::string instr_process_id(msg_process_t proc) +std::string instr_pid(msg_process_t proc) { return std::string(proc->getCname()) + "-" + std::to_string(proc->getPid()); } @@ -23,7 +23,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host) std::string key = std::to_string(counter++); //start link - container_t msg = simgrid::instr::Container::byName(instr_process_id(process)); + container_t msg = simgrid::instr::Container::byName(instr_pid(process)); simgrid::instr::LinkType* link = static_cast(simgrid::instr::Type::getRootType()->byName("MSG_PROCESS_LINK")); link->startEvent(MSG_get_clock(), simgrid::instr::Container::getRootContainer(), msg, "M", key); @@ -35,7 +35,7 @@ void TRACE_msg_process_change_host(msg_process_t process, msg_host_t new_host) TRACE_msg_process_create (MSG_process_get_name (process), MSG_process_get_PID (process), new_host); //end link - msg = simgrid::instr::Container::byName(instr_process_id(process)); + msg = simgrid::instr::Container::byName(instr_pid(process)); link->endEvent(MSG_get_clock(), simgrid::instr::Container::getRootContainer(), msg, "M", key); } } @@ -71,40 +71,24 @@ void TRACE_msg_process_kill(smx_process_exit_status_t status, msg_process_t proc void TRACE_msg_process_suspend(msg_process_t process) { - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(process)); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->pushEvent(MSG_get_clock(), process_container, "suspend"); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("suspend"); } void TRACE_msg_process_resume(msg_process_t process) { - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(process)); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->popEvent(MSG_get_clock(), process_container); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent(); } void TRACE_msg_process_sleep_in(msg_process_t process) { - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(process)); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->pushEvent(MSG_get_clock(), process_container, "sleep"); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->pushEvent("sleep"); } void TRACE_msg_process_sleep_out(msg_process_t process) { - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(process)); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->popEvent(MSG_get_clock(), process_container); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(process))->getState("MSG_PROCESS_STATE")->popEvent(); } diff --git a/src/msg/instr_msg_task.cpp b/src/msg/instr_msg_task.cpp index 7a146ac018..4ed862918e 100644 --- a/src/msg/instr_msg_task.cpp +++ b/src/msg/instr_msg_task.cpp @@ -48,24 +48,18 @@ void TRACE_msg_task_execute_start(msg_task_t task) { XBT_DEBUG("EXEC,in %p, %lld, %s", task, task->counter, task->category); - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->pushEvent(MSG_get_clock(), process_container, "task_execute"); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(MSG_process_self())) + ->getState("MSG_PROCESS_STATE") + ->pushEvent("task_execute"); } void TRACE_msg_task_execute_end(msg_task_t task) { XBT_DEBUG("EXEC,out %p, %lld, %s", task, task->counter, task->category); - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->popEvent(MSG_get_clock(), process_container); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent(); } /* MSG_task_destroy related functions */ @@ -83,12 +77,10 @@ void TRACE_msg_task_get_start() { XBT_DEBUG("GET,in"); - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->pushEvent(MSG_get_clock(), process_container, "receive"); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(MSG_process_self())) + ->getState("MSG_PROCESS_STATE") + ->pushEvent("receive"); } void TRACE_msg_task_get_end(double start_time, msg_task_t task) @@ -96,10 +88,8 @@ void TRACE_msg_task_get_end(double start_time, msg_task_t task) XBT_DEBUG("GET,out %p, %lld, %s", task, task->counter, task->category); if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->popEvent(MSG_get_clock(), process_container); + container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self())); + process_container->getState("MSG_PROCESS_STATE")->popEvent(); std::string key = std::string("p") + std::to_string(task->counter); simgrid::instr::LinkType* link = @@ -114,10 +104,8 @@ int TRACE_msg_task_put_start(msg_task_t task) XBT_DEBUG("PUT,in %p, %lld, %s", task, task->counter, task->category); if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->pushEvent(MSG_get_clock(), process_container, "send"); + container_t process_container = simgrid::instr::Container::byName(instr_pid(MSG_process_self())); + process_container->getState("MSG_PROCESS_STATE")->pushEvent("send"); std::string key = std::string("p") + std::to_string(task->counter); simgrid::instr::LinkType* link = @@ -132,10 +120,6 @@ void TRACE_msg_task_put_end() { XBT_DEBUG("PUT,out"); - if (TRACE_msg_process_is_enabled()){ - container_t process_container = simgrid::instr::Container::byName(instr_process_id(MSG_process_self())); - simgrid::instr::StateType* state = - static_cast(process_container->type_->byName("MSG_PROCESS_STATE")); - state->popEvent(MSG_get_clock(), process_container); - } + if (TRACE_msg_process_is_enabled()) + simgrid::instr::Container::byName(instr_pid(MSG_process_self()))->getState("MSG_PROCESS_STATE")->popEvent(); } diff --git a/src/msg/msg_private.hpp b/src/msg/msg_private.hpp index d689f4ccdc..faf4fdb82c 100644 --- a/src/msg/msg_private.hpp +++ b/src/msg/msg_private.hpp @@ -94,7 +94,7 @@ struct s_MSG_Global_t { }; typedef s_MSG_Global_t* MSG_Global_t; -XBT_PRIVATE std::string instr_process_id(msg_process_t proc); +XBT_PRIVATE std::string instr_pid(msg_process_t proc); extern "C" { diff --git a/src/msg/msg_vm.cpp b/src/msg/msg_vm.cpp index 6f5c67379d..2e067afd0d 100644 --- a/src/msg/msg_vm.cpp +++ b/src/msg/msg_vm.cpp @@ -185,11 +185,9 @@ void MSG_vm_start(msg_vm_t vm) { vm->start(); if (TRACE_msg_vm_is_enabled()) { - container_t vm_container = simgrid::instr::Container::byName(vm->getName()); - simgrid::instr::StateType* state = - static_cast(vm_container->type_->byName("MSG_VM_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE"); state->addEntityValue("start", "0 0 1"); // start is blue - state->pushEvent(MSG_get_clock(), vm_container, "start"); + state->pushEvent("start"); } } @@ -767,11 +765,9 @@ void MSG_vm_suspend(msg_vm_t vm) XBT_DEBUG("vm_suspend done"); if (TRACE_msg_vm_is_enabled()) { - container_t vm_container = simgrid::instr::Container::byName(vm->getName()); - simgrid::instr::StateType* state = - static_cast(vm_container->type_->byName("MSG_VM_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE"); state->addEntityValue("suspend", "1 0 0"); // suspend is red - state->pushEvent(MSG_get_clock(), vm_container, "suspend"); + state->pushEvent("suspend"); } } @@ -784,12 +780,8 @@ void MSG_vm_resume(msg_vm_t vm) { vm->pimpl_vm_->resume(); - if (TRACE_msg_vm_is_enabled()) { - container_t vm_container = simgrid::instr::Container::byName(vm->getName()); - simgrid::instr::StateType* state = - static_cast(vm_container->type_->byName("MSG_VM_STATE")); - state->popEvent(MSG_get_clock(), vm_container); - } + if (TRACE_msg_vm_is_enabled()) + simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE")->popEvent(); } /** @brief Get the physical host of a given VM. diff --git a/src/smpi/internals/instr_smpi.cpp b/src/smpi/internals/instr_smpi.cpp index 3dc3f33adf..dfe1b8b217 100644 --- a/src/smpi/internals/instr_smpi.cpp +++ b/src/smpi/internals/instr_smpi.cpp @@ -197,21 +197,16 @@ void TRACE_smpi_collective_in(int rank, const char *operation, instr_extra_data return; } - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); const char *color = instr_find_color (operation); state->addEntityValue(operation, color); - state->pushEvent(SIMIX_get_clock(), container, operation, static_cast(extra)); + state->pushEvent(operation, static_cast(extra)); } void TRACE_smpi_collective_out(int rank, const char *operation) { - if (not TRACE_smpi_is_enabled()) - return; - - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); - state->popEvent(SIMIX_get_clock(), container); + if (TRACE_smpi_is_enabled()) + simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE")->popEvent(); } void TRACE_smpi_computing_init(int rank) @@ -220,10 +215,9 @@ void TRACE_smpi_computing_init(int rank) if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_computing()) return; - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue("computing", instr_find_color("computing")); - state->pushEvent(SIMIX_get_clock(), container, "computing"); + state->pushEvent("computing"); } void TRACE_smpi_computing_in(int rank, instr_extra_data extra) @@ -234,10 +228,9 @@ void TRACE_smpi_computing_in(int rank, instr_extra_data extra) return; } - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue("computing"); - state->pushEvent(SIMIX_get_clock(), container, "computing", static_cast(extra)); + state->pushEvent("computing", static_cast(extra)); } void TRACE_smpi_computing_out(int rank) @@ -245,9 +238,7 @@ void TRACE_smpi_computing_out(int rank) if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_computing()) return; - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); - state->popEvent(SIMIX_get_clock(), container); + simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE")->popEvent(); } void TRACE_smpi_sleeping_init(int rank) @@ -256,10 +247,9 @@ void TRACE_smpi_sleeping_init(int rank) if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_sleeping()) return; - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue("sleeping", instr_find_color("sleeping")); - state->pushEvent(SIMIX_get_clock(), container, "sleeping"); + state->pushEvent("sleeping"); } void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra) @@ -270,10 +260,9 @@ void TRACE_smpi_sleeping_in(int rank, instr_extra_data extra) return; } - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue("sleeping"); - state->pushEvent(SIMIX_get_clock(), container, "sleeping", static_cast(extra)); + state->pushEvent("sleeping", static_cast(extra)); } void TRACE_smpi_sleeping_out(int rank) @@ -281,9 +270,7 @@ void TRACE_smpi_sleeping_out(int rank) if (not TRACE_smpi_is_enabled() || not TRACE_smpi_is_sleeping()) return; - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); - state->popEvent(SIMIX_get_clock(), container); + simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE")->popEvent(); } void TRACE_smpi_testing_in(int rank, instr_extra_data extra) @@ -294,20 +281,15 @@ void TRACE_smpi_testing_in(int rank, instr_extra_data extra) return; } - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue("test"); - state->pushEvent(SIMIX_get_clock(), container, "test", static_cast(extra)); + state->pushEvent("test", static_cast(extra)); } void TRACE_smpi_testing_out(int rank) { - if (not TRACE_smpi_is_enabled()) - return; - - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); - state->popEvent(SIMIX_get_clock(), container); + if (TRACE_smpi_is_enabled()) + simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE")->popEvent(); } void TRACE_smpi_ptp_in(int rank, const char *operation, instr_extra_data extra) @@ -317,20 +299,15 @@ void TRACE_smpi_ptp_in(int rank, const char *operation, instr_extra_data extra) return; } - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); + simgrid::instr::StateType* state = simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE"); state->addEntityValue(operation, instr_find_color(operation)); - state->pushEvent(SIMIX_get_clock(), container, operation, static_cast(extra)); + state->pushEvent(operation, static_cast(extra)); } void TRACE_smpi_ptp_out(int rank, int dst, const char *operation) { - if (not TRACE_smpi_is_enabled()) - return; - - container_t container = simgrid::instr::Container::byName(smpi_container(rank)); - simgrid::instr::StateType* state = static_cast(container->type_->byName("MPI_STATE")); - state->popEvent(SIMIX_get_clock(), container); + if (TRACE_smpi_is_enabled()) + simgrid::instr::Container::byName(smpi_container(rank))->getState("MPI_STATE")->popEvent(); } void TRACE_smpi_send(int rank, int src, int dst, int tag, int size) -- 2.20.1