X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/94e9dc93cadf4130878831fc74e5f17d035a3600..dd33438d4578b82a960cade03329ca99f2bbc53a:/src/surf/surf_interface.cpp diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index 0417b98c3e..6c00e7caca 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -32,6 +32,7 @@ simgrid::trace_mgr::future_evt_set *future_evt_set = nullptr; std::vector surf_path; std::vector host_that_restart; xbt_dict_t watched_hosts_lib; +extern std::map storage_types; namespace simgrid { namespace surf { @@ -352,8 +353,6 @@ void surf_init(int *argc, char **argv) USER_HOST_LEVEL = simgrid::s4u::Host::extension_create(nullptr); storage_lib = xbt_lib_new(); - storage_type_lib = xbt_lib_new(); - file_lib = xbt_lib_new(); watched_hosts_lib = xbt_dict_new_homogeneous(nullptr); XBT_DEBUG("Add SURF levels"); @@ -365,8 +364,8 @@ void surf_init(int *argc, char **argv) if (!future_evt_set) future_evt_set = new simgrid::trace_mgr::future_evt_set(); - TRACE_add_start_function(TRACE_surf_alloc); - TRACE_add_end_function(TRACE_surf_release); + TRACE_surf_alloc(); + simgrid::surf::surfExitCallbacks.connect(TRACE_surf_release); sg_config_init(argc, argv); @@ -381,9 +380,17 @@ void surf_exit() sg_host_exit(); xbt_lib_free(&storage_lib); sg_link_exit(); - xbt_lib_free(&storage_type_lib); - xbt_lib_free(&file_lib); xbt_dict_free(&watched_hosts_lib); + for (auto e : storage_types) { + storage_type_t stype = e.second; + free(stype->model); + free(stype->type_id); + free(stype->content); + free(stype->content_type); + xbt_dict_free(&(stype->properties)); + delete stype->model_properties; + free(stype); + } for (auto model : *all_existing_models) delete model;