From 82ddb727c0a2719bf9c20cf98fb7707bbe2c3354 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 12 Apr 2017 23:52:12 +0200 Subject: [PATCH] use surf init/fini callbacks, no need for TRACE ones --- src/include/instr/instr_interface.h | 4 +--- src/instr/instr_config.cpp | 21 --------------------- src/smpi/smpi_global.cpp | 7 ++++--- src/surf/surf_interface.cpp | 4 ++-- 4 files changed, 7 insertions(+), 29 deletions(-) diff --git a/src/include/instr/instr_interface.h b/src/include/instr/instr_interface.h index 5414de740f..8bb38ce23d 100644 --- a/src/include/instr/instr_interface.h +++ b/src/include/instr/instr_interface.h @@ -16,9 +16,7 @@ XBT_PUBLIC(void) TRACE_global_init(int *argc, char **argv); XBT_PUBLIC(void) TRACE_help(int detailed); XBT_PUBLIC(void) TRACE_surf_resource_utilization_alloc(); XBT_PUBLIC(void) TRACE_surf_resource_utilization_release(); -XBT_PUBLIC(void) TRACE_add_start_function(void (*func)(void)); -XBT_PUBLIC(void) TRACE_add_end_function(void (*func)(void)); SG_END_DECL() -#endif \ No newline at end of file +#endif diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index d787861180..1726c2dfc4 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -87,13 +87,6 @@ static void TRACE_getopts() trace_precision = xbt_cfg_get_int(OPT_TRACING_PRECISION); } -static std::vector> TRACE_start_functions; - -void TRACE_add_start_function(void (*func) ()) -{ - TRACE_start_functions.push_back(func); -} - int TRACE_start() { if (TRACE_is_configured()) @@ -133,20 +126,10 @@ int TRACE_start() user_host_variables = xbt_dict_new_homogeneous(xbt_free_f); user_vm_variables = xbt_dict_new_homogeneous(xbt_free_f); user_link_variables = xbt_dict_new_homogeneous(xbt_free_f); - - for (auto func: TRACE_start_functions) - func(); } - TRACE_start_functions.clear(); return 0; } -static std::vector> TRACE_end_functions; -void TRACE_add_end_function(void (*func) (void)) -{ - TRACE_end_functions.push_back(func); -} - int TRACE_end() { int retval; @@ -168,10 +151,6 @@ int TRACE_end() PJ_container_release(); PJ_type_release(); - for (auto func: TRACE_end_functions) - func(); - TRACE_start_functions.clear(); - xbt_dict_free(&user_link_variables); xbt_dict_free(&user_host_variables); xbt_dict_free(&user_vm_variables); diff --git a/src/smpi/smpi_global.cpp b/src/smpi/smpi_global.cpp index 0da7f66a81..b20dd692c2 100644 --- a/src/smpi/smpi_global.cpp +++ b/src/smpi/smpi_global.cpp @@ -18,6 +18,7 @@ #include "src/mc/mc_replay.h" #include "src/msg/msg_private.h" #include "src/simix/smx_private.h" +#include "src/surf/surf_interface.hpp" #include "surf/surf.h" #include "xbt/replay.hpp" #include @@ -497,17 +498,17 @@ int smpi_main(const char* executable, int argc, char *argv[]) * configuration tools */ return 0; } - smpi_init_logs(); TRACE_global_init(&argc, argv); - TRACE_add_start_function(TRACE_smpi_alloc); - TRACE_add_end_function(TRACE_smpi_release); + TRACE_smpi_alloc(); + simgrid::surf::surfExitCallbacks.connect(TRACE_smpi_release); SIMIX_global_init(&argc, argv); MSG_init(&argc,argv); SMPI_switch_data_segment = &smpi_switch_data_segment; + smpi_init_logs(); smpi_init_options(); // parse the platform file: get the host list diff --git a/src/surf/surf_interface.cpp b/src/surf/surf_interface.cpp index 0417b98c3e..39119c5ba1 100644 --- a/src/surf/surf_interface.cpp +++ b/src/surf/surf_interface.cpp @@ -365,8 +365,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); -- 2.20.1