Engine::Engine(int *argc, char **argv) {
xbt_assert(s4u::Engine::instance_ == nullptr, "It is currently forbidden to create more than one instance of s4u::Engine");
- s4u::Engine::instance_ = this;
- pimpl = new kernel::EngineImpl();
-
TRACE_global_init();
SIMIX_global_init(argc, argv);
+
+ pimpl = new kernel::EngineImpl();
+ s4u::Engine::instance_ = this;
}
Engine::~Engine()
Engine* Engine::getInstance()
{
if (s4u::Engine::instance_ == nullptr)
- new Engine(0,nullptr);
- return s4u::Engine::instance_;
+ return new Engine(0, nullptr);
+ else
+ return s4u::Engine::instance_;
}
void Engine::shutdown() {
delete s4u::Engine::instance_;
+ s4u::Engine::instance_ = nullptr;
}
double Engine::getClock()
/** @brief Register a new netpoint to the system */
void Engine::netpointRegister(simgrid::kernel::routing::NetPoint* point)
{
-// simgrid::simix::kernelImmediate([&]{ FIXME: this segfaults in set_thread
- pimpl->netpoints_[point->name()] = point;
-// });
+ // simgrid::simix::kernelImmediate([&]{ FIXME: this segfaults in set_thread
+ pimpl->netpoints_[point->getName()] = point;
+ // });
}
/** @brief Unregister a given netpoint */
void Engine::netpointUnregister(simgrid::kernel::routing::NetPoint* point)
{
simgrid::simix::kernelImmediate([this, point] {
- pimpl->netpoints_.erase(point->name());
+ pimpl->netpoints_.erase(point->getName());
delete point;
});
}