From: schnorr Date: Wed, 19 Sep 2012 15:24:21 +0000 (+0200) Subject: [trace] give users the possibility to pause/resume all tracing activities X-Git-Tag: v3_8~146^2~42 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/45d5c1bb8e65df9d0fbaa259ffeabdf49cf9fbe4?ds=inline [trace] give users the possibility to pause/resume all tracing activities --- diff --git a/include/instr/instr.h b/include/instr/instr.h index 3cb23add55..9e3d584939 100644 --- a/include/instr/instr.h +++ b/include/instr/instr.h @@ -81,6 +81,9 @@ XBT_PUBLIC(void) TRACE_host_reset_state (const char *host, const char *state); /* for creating graph configuration files for Triva by hand */ XBT_PUBLIC(xbt_dynar_t) TRACE_get_node_types (void); XBT_PUBLIC(xbt_dynar_t) TRACE_get_edge_types (void); +XBT_PUBLIC(void) TRACE_pause (void); +XBT_PUBLIC(void) TRACE_resume (void); + #else /* HAVE_TRACING */ diff --git a/src/instr/instr_config.c b/src/instr/instr_config.c index f6d2e212cd..44b1f3fdb9 100644 --- a/src/instr/instr_config.c +++ b/src/instr/instr_config.c @@ -634,6 +634,18 @@ void TRACE_generate_viva_cat_conf (void) generate_cat_configuration (TRACE_get_viva_cat_conf(), "viva", 0); } +void instr_pause_tracing (void) +{ + trace_enabled = 0; + XBT_DEBUG ("Tracing is paused."); +} + +void instr_resume_tracing (void) +{ + trace_enabled = 1; + XBT_DEBUG ("Tracing is resumed."); +} + #undef OPT_TRACING #undef OPT_TRACING_PLATFORM #undef OPT_TRACING_SMPI diff --git a/src/instr/instr_interface.c b/src/instr/instr_interface.c index 0a80054d0d..5fffd02af8 100644 --- a/src/instr/instr_interface.c +++ b/src/instr/instr_interface.c @@ -985,4 +985,32 @@ xbt_dynar_t TRACE_get_edge_types (void) return instr_dict_to_dynar (trivaEdgeTypes); } +/** \ingroup TRACE_API + * \brief Pauses all tracing activities. + * \see TRACE_resume + */ +void TRACE_pause (void) +{ + if (!TRACE_is_enabled()){ + XBT_DEBUG ("Tracing is already paused, therefore do nothing."); + }else{ + XBT_DEBUG ("Tracing is being paused."); + instr_pause_tracing(); + } +} + +/** \ingroup TRACE_API + * \brief Resumes all tracing activities. + * \see TRACE_pause + */ +void TRACE_resume (void) +{ + if (TRACE_is_enabled()){ + XBT_DEBUG ("Tracing is already running while trying to resume, therefore do nothing."); + }else{ + XBT_DEBUG ("Tracing is being resumed."); + instr_resume_tracing(); + } +} + #endif /* HAVE_TRACING */ diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index ac6d1e4730..b4b661f393 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -209,6 +209,8 @@ void TRACE_generate_triva_uncat_conf (void); void TRACE_generate_triva_cat_conf (void); void TRACE_generate_viva_uncat_conf (void); void TRACE_generate_viva_cat_conf (void); +void instr_pause_tracing (void); +void instr_resume_tracing (void); /* from resource_utilization.c */ void TRACE_surf_host_set_utilization(const char *resource,