From: Augustin Degomme Date: Tue, 5 Nov 2013 18:05:11 +0000 (+0100) Subject: Trace buffer is not to be handled by the format-dependent init functions X-Git-Tag: v3_11_beta~386 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8ec4cdb61b9430ccbbb5f07e48d46039aa72609f Trace buffer is not to be handled by the format-dependent init functions --- diff --git a/src/instr/instr_TI_trace.c b/src/instr/instr_TI_trace.c index 6fd798f25e..5846c77480 100644 --- a/src/instr/instr_TI_trace.c +++ b/src/instr/instr_TI_trace.c @@ -19,7 +19,6 @@ double prefix=0.0; xbt_dict_t tracing_files = NULL; extern s_instr_trace_writer_t active_writer; -extern xbt_dynar_t buffer; void TRACE_TI_init(void) { @@ -45,7 +44,6 @@ void TRACE_TI_start(void) /* output comment file */ dump_comment_file(TRACE_get_comment_file()); - buffer = xbt_dynar_new(sizeof(paje_event_t), NULL); } void TRACE_TI_end(void) @@ -53,7 +51,6 @@ void TRACE_TI_end(void) if(tracing_files)xbt_dict_free(&tracing_files); fclose(tracing_file); char *filename = TRACE_get_filename(); - xbt_dynar_free(&buffer); XBT_DEBUG("Filename %s is closed", filename); } diff --git a/src/instr/instr_config.c b/src/instr/instr_config.c index 50886f987c..6300219228 100644 --- a/src/instr/instr_config.c +++ b/src/instr/instr_config.c @@ -104,7 +104,8 @@ int TRACE_start() XBT_DEBUG("Tracing starts"); /* init the tracing module to generate the right output */ - /* open the trace file */ + /* open internal buffer */ + TRACE_init(); /* open the trace file(s) */ const char* format = sg_cfg_get_string(OPT_TRACING_FORMAT); @@ -198,6 +199,8 @@ int TRACE_end() }else{ xbt_die("Unknown trace format :%s ", format); } + /* close internal buffer */ + TRACE_finalize(); /* de-activate trace */ trace_active = 0; XBT_DEBUG("Tracing is off"); diff --git a/src/instr/instr_paje_trace.c b/src/instr/instr_paje_trace.c index 91bfb95931..46603c6f9d 100644 --- a/src/instr/instr_paje_trace.c +++ b/src/instr/instr_paje_trace.c @@ -11,7 +11,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_trace, instr_trace, "tracing event sy extern FILE * tracing_file; extern s_instr_trace_writer_t active_writer; -extern xbt_dynar_t buffer; void TRACE_paje_init(void) @@ -65,14 +64,12 @@ void TRACE_paje_start(void) /* output header */ TRACE_header(TRACE_basic(),TRACE_display_sizes()); - buffer = xbt_dynar_new (sizeof(paje_event_t), NULL); } void TRACE_paje_end(void) { fclose(tracing_file); char *filename = TRACE_get_filename(); - xbt_dynar_free (&buffer); XBT_DEBUG("Filename %s is closed", filename); } diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index cfa16136e9..2c0fc4b57a 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -234,6 +234,8 @@ extern double TRACE_last_timestamp_to_dump; void TRACE_header(int basic, int size); /* from paje.c */ +void TRACE_init(void); +void TRACE_finalize(void); void TRACE_paje_init(void); void TRACE_paje_start(void); void TRACE_paje_end(void); diff --git a/src/instr/instr_trace.c b/src/instr/instr_trace.c index 02de93aaf5..e37756ad07 100644 --- a/src/instr/instr_trace.c +++ b/src/instr/instr_trace.c @@ -59,8 +59,13 @@ void dump_comment_file (const char *filename) fclose(file); } +void TRACE_init(){ + buffer = xbt_dynar_new(sizeof(paje_event_t), NULL); +} - +void TRACE_finalize(){ + if (buffer) xbt_dynar_free(&buffer); +} double TRACE_last_timestamp_to_dump = 0; //dumps the trace file until the timestamp TRACE_last_timestamp_to_dump @@ -101,6 +106,7 @@ static void insert_into_buffer (paje_event_t tbi) tbi->free (tbi); return; } + XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%lu)", __FUNCTION__, (int)tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer));