std::vector<xbt::Task<void()>> tasks;
std::mutex mutex_;
+ static EngineImpl* instance_;
+
std::unique_ptr<void, std::function<int(void*)>> platf_handle_; //!< handle for platform library
friend s4u::Engine;
public:
EngineImpl() = default;
+ /* Currently, only one instance is allowed to exist. This is why you can't copy or move it */
+#ifndef DOXYGEN
EngineImpl(const EngineImpl&) = delete;
EngineImpl& operator=(const EngineImpl&) = delete;
virtual ~EngineImpl();
+ static void shutdown();
+#endif
void load_platform(const std::string& platf);
void load_deployment(const std::string& file) const;
const std::vector<resource::Model*>& get_all_models() const { return models_; }
static EngineImpl* get_instance() { return simgrid::s4u::Engine::get_instance()->pimpl; }
+
actor::ActorCodeFactory get_function(const std::string& name)
{
auto res = registered_functions.find(name);