Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Replace sprintf by snprintf.
[simgrid.git] / src / surf / surf_interface.cpp
index a6a4825..952cf79 100644 (file)
@@ -16,6 +16,7 @@
 #include "mc/mc.h"
 #include "virtual_machine.hpp"
 #include "src/instr/instr_private.h" // TRACE_is_enabled(). FIXME: remove by subscribing tracing to the surf signals
+#include "simgrid/s4u/engine.hpp"
 
 XBT_LOG_NEW_CATEGORY(surf, "All SURF categories");
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_kernel, surf, "Logging specific to SURF (kernel)");
@@ -283,9 +284,11 @@ void surf_init(int *argc, char **argv)
   file_lib = xbt_lib_new();
   watched_hosts_lib = xbt_dict_new_homogeneous(NULL);
 
-
   XBT_DEBUG("Add routing levels");
   ROUTING_PROP_ASR_LEVEL = xbt_lib_add_level(as_router_lib, NULL);
+  ROUTING_ASR_LEVEL = xbt_lib_add_level(as_router_lib, [](void* p) {
+    delete static_cast<simgrid::surf::NetCard*>(p);
+  });
 
   XBT_DEBUG("Add SURF levels");
   simgrid::surf::HostImpl::classInit();
@@ -348,6 +351,7 @@ void surf_exit(void)
 
   tmgr_finalize();
   sg_platf_exit();
+  simgrid::s4u::Engine::shutdown();
 
   NOW = 0;                      /* Just in case the user plans to restart the simulation afterward */
 }