X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/721c5fd3552fda449831f04443097c1975ce517c..8d3b419c15aea5862d3fc3cc2a9e363493f0a04f:/src/instr/instr_config.cpp diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index d787861180..8455e27199 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -63,6 +63,10 @@ static int trace_precision; static bool trace_configured = false; static bool trace_active = false; +static type_t rootType = nullptr; /* the root type */ + +instr_fmt_type_t instr_fmt_type = instr_fmt_paje; + static void TRACE_getopts() { trace_enabled = xbt_cfg_get_boolean(OPT_TRACING); @@ -87,13 +91,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()) @@ -110,11 +107,10 @@ int TRACE_start() /* open the trace file(s) */ const char* format = xbt_cfg_get_string(OPT_TRACING_FORMAT); XBT_DEBUG("Tracing format %s\n", format); - if(!strcmp(format, "Paje")){ - TRACE_paje_init(); + if (not strcmp(format, "Paje")) { TRACE_paje_start(); - }else if (!strcmp(format, "TI")){ - TRACE_TI_init(); + } else if (not strcmp(format, "TI")) { + instr_fmt_type = instr_fmt_TI; TRACE_TI_start(); }else{ xbt_die("Unknown trace format :%s ", format); @@ -133,24 +129,14 @@ 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; - if (!trace_active) { + if (not trace_active) { retval = 1; } else { retval = 0; @@ -164,13 +150,9 @@ int TRACE_end() /* destroy all data structures of tracing (and free) */ PJ_container_free_all(); - PJ_type_free_all(); + recursiveDestroyType (PJ_type_get_root()); PJ_container_release(); - PJ_type_release(); - - for (auto func: TRACE_end_functions) - func(); - TRACE_start_functions.clear(); + rootType = nullptr; xbt_dict_free(&user_link_variables); xbt_dict_free(&user_host_variables); @@ -181,9 +163,9 @@ int TRACE_end() /* close the trace files */ const char* format = xbt_cfg_get_string(OPT_TRACING_FORMAT); XBT_DEBUG("Tracing format %s\n", format); - if(!strcmp(format, "Paje")){ + if (not strcmp(format, "Paje")) { TRACE_paje_end(); - }else if (!strcmp(format, "TI")){ + } else if (not strcmp(format, "TI")) { TRACE_TI_end(); }else{ xbt_die("Unknown trace format :%s ", format); @@ -333,7 +315,7 @@ char *TRACE_get_viva_cat_conf () return xbt_cfg_get_string(OPT_VIVA_CAT_CONF); } -void TRACE_global_init(int *argc, char **argv) +void TRACE_global_init() { static int is_initialised = 0; if (is_initialised) @@ -625,7 +607,7 @@ static int previous_trace_state = -1; void instr_pause_tracing () { previous_trace_state = trace_enabled; - if (!TRACE_is_enabled()){ + if (not TRACE_is_enabled()) { XBT_DEBUG ("Tracing is already paused, therefore do nothing."); }else{ XBT_DEBUG ("Tracing is being paused.");