Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to reduce calls to get_instance and plug some leaks
[simgrid.git] / src / surf / sg_platf.cpp
index 5810642..0838631 100644 (file)
@@ -22,7 +22,6 @@
 #include "src/kernel/EngineImpl.hpp"
 #include "src/kernel/resource/DiskImpl.hpp"
 #include "src/kernel/resource/profile/Profile.hpp"
-#include "src/simix/smx_private.hpp"
 #include "src/surf/HostImpl.hpp"
 #include "src/surf/xml/platf_private.hpp"
 
@@ -151,10 +150,10 @@ void sg_platf_new_disk(const simgrid::kernel::routing::DiskCreationArgs* disk)
 /** @brief Auxiliary function to create hosts */
 static std::pair<simgrid::kernel::routing::NetPoint*, simgrid::kernel::routing::NetPoint*>
 sg_platf_cluster_create_host(const simgrid::kernel::routing::ClusterCreationArgs* cluster, simgrid::s4u::NetZone* zone,
-                             const std::vector<unsigned int>& /*coord*/, int id)
+                             const std::vector<unsigned long>& /*coord*/, unsigned long id)
 {
   xbt_assert(static_cast<unsigned long>(id) < cluster->radicals.size(),
-             "Zone(%s): error when creating host number %d in the zone. Insufficient number of radicals available "
+             "Zone(%s): error when creating host number %lu in the zone. Insufficient number of radicals available "
              "(total = %zu). Check the 'radical' parameter in XML",
              cluster->id.c_str(), id, cluster->radicals.size());
 
@@ -170,11 +169,12 @@ sg_platf_cluster_create_host(const simgrid::kernel::routing::ClusterCreationArgs
 /** @brief Auxiliary function to create loopback links */
 static simgrid::s4u::Link*
 sg_platf_cluster_create_loopback(const simgrid::kernel::routing::ClusterCreationArgs* cluster,
-                                 simgrid::s4u::NetZone* zone, const std::vector<unsigned int>& /*coord*/, int id)
+                                 simgrid::s4u::NetZone* zone, const std::vector<unsigned long>& /*coord*/,
+                                 unsigned long id)
 {
   xbt_assert(static_cast<unsigned long>(id) < cluster->radicals.size(),
-             "Zone(%s): error when creating loopback for host number %d in the zone. Insufficient number of radicals "
-             "available "
+             "Zone(%s): error when creating loopback for host number %lu in the zone. Insufficient number of "
+             "radicals available "
              "(total = %zu). Check the 'radical' parameter in XML",
              cluster->id.c_str(), id, cluster->radicals.size());
 
@@ -191,7 +191,8 @@ sg_platf_cluster_create_loopback(const simgrid::kernel::routing::ClusterCreation
 /** @brief Auxiliary function to create limiter links */
 static simgrid::s4u::Link* sg_platf_cluster_create_limiter(const simgrid::kernel::routing::ClusterCreationArgs* cluster,
                                                            simgrid::s4u::NetZone* zone,
-                                                           const std::vector<unsigned int>& /*coord*/, int id)
+                                                           const std::vector<unsigned long>& /*coord*/,
+                                                           unsigned long id)
 {
   std::string link_id = std::string(cluster->id) + "_link_" + std::to_string(id) + "_limiter";
   XBT_DEBUG("Cluster: creating limiter link=%s bw=%f", link_id.c_str(), cluster->limiter_link);
@@ -451,13 +452,14 @@ void sg_platf_new_bypass_route(simgrid::kernel::routing::RouteCreationArgs* rout
 
 void sg_platf_new_actor(simgrid::kernel::routing::ActorCreationArgs* actor)
 {
+  auto* engine   = simgrid::s4u::Engine::get_instance();
   sg_host_t host = sg_host_by_name(actor->host);
   if (not host) {
     // The requested host does not exist. Do a nice message to the user
     std::string msg = std::string("Cannot create actor '") + actor->function + "': host '" + actor->host +
                       "' does not exist\nExisting hosts: '";
 
-    std::vector<simgrid::s4u::Host*> list = simgrid::s4u::Engine::get_instance()->get_all_hosts();
+    std::vector<simgrid::s4u::Host*> list = engine->get_all_hosts();
 
     for (auto const& some_host : list) {
       msg += some_host->get_name();
@@ -470,8 +472,7 @@ void sg_platf_new_actor(simgrid::kernel::routing::ActorCreationArgs* actor)
     }
     xbt_die("%s", msg.c_str());
   }
-  const simgrid::kernel::actor::ActorCodeFactory& factory =
-      simgrid::kernel::EngineImpl::get_instance()->get_function(actor->function);
+  const simgrid::kernel::actor::ActorCodeFactory& factory = engine->get_impl()->get_function(actor->function);
   xbt_assert(factory, "Error while creating an actor from the XML file: Function '%s' not registered", actor->function);
 
   double start_time = actor->start_time;