From: Frederic Suter Date: Mon, 30 Apr 2018 14:41:09 +0000 (+0200) Subject: add new signal trigerred when some config has been done in the XML X-Git-Tag: v3.20~312 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/d501d6a7990a1531087645e1a40b1b00c1185988 add new signal trigerred when some config has been done in the XML this allow us to start tracing if tracing:yes is in the XML and not on command line --- diff --git a/include/simgrid/s4u/Engine.hpp b/include/simgrid/s4u/Engine.hpp index bd28d99cdd..5d18f7beca 100644 --- a/include/simgrid/s4u/Engine.hpp +++ b/include/simgrid/s4u/Engine.hpp @@ -226,6 +226,9 @@ extern XBT_PUBLIC xbt::signal on_platform_created; /** Callback fired when the platform is about to be created (ie, just before the xml file is parsed) */ extern XBT_PUBLIC xbt::signal on_platform_creation; +/** Callback fired when some configuration has be done directly in the XML file */ +extern XBT_PUBLIC xbt::signal on_config_in_platform_done; + /** Callback fired when the main simulation loop ends, just before the end of Engine::run() */ extern XBT_PUBLIC xbt::signal on_simulation_end; diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index 4a7fd8ab04..989437ac03 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -76,7 +76,7 @@ static bool trace_active = false; simgrid::instr::TraceFormat simgrid::instr::trace_format = simgrid::instr::TraceFormat::Paje; -void TRACE_start() +static void TRACE_start() { if (trace_active) return; @@ -281,6 +281,7 @@ void TRACE_global_init() /* Connect callbacks */ simgrid::s4u::on_platform_creation.connect(TRACE_start); + simgrid::s4u::on_config_in_platform_done.connect(TRACE_start); simgrid::s4u::on_deadlock.connect(TRACE_end); simgrid::s4u::on_simulation_end.connect(TRACE_end); } diff --git a/src/instr/instr_private.hpp b/src/instr/instr_private.hpp index 0574307eac..a403957751 100644 --- a/src/instr/instr_private.hpp +++ b/src/instr/instr_private.hpp @@ -255,7 +255,6 @@ void instr_new_user_state_type(std::string father_type, std::string new_typename void instr_new_value_for_user_state_type(std::string new_typename, const char* value, std::string color); /* instr_config.c */ -XBT_PRIVATE void TRACE_start(); XBT_PRIVATE void TRACE_TI_start(); XBT_PRIVATE void TRACE_TI_end(); XBT_PRIVATE void TRACE_global_init(); diff --git a/src/s4u/s4u_Engine.cpp b/src/s4u/s4u_Engine.cpp index 1263f114b0..23e95769ab 100644 --- a/src/s4u/s4u_Engine.cpp +++ b/src/s4u/s4u_Engine.cpp @@ -25,6 +25,7 @@ namespace simgrid { namespace s4u { xbt::signal on_platform_creation; xbt::signal on_platform_created; +xbt::signal on_config_in_platform_done; xbt::signal on_simulation_end; xbt::signal on_time_advance; xbt::signal on_deadlock; diff --git a/src/surf/xml/surfxml_sax_cb.cpp b/src/surf/xml/surfxml_sax_cb.cpp index 43c3b3b600..c1e5a771b3 100644 --- a/src/surf/xml/surfxml_sax_cb.cpp +++ b/src/surf/xml/surfxml_sax_cb.cpp @@ -869,9 +869,8 @@ void ETag_surfxml_config() XBT_INFO("The custom configuration '%s' is already defined by user!", elm.first.c_str()); } XBT_DEBUG("End configuration name = %s",A_surfxml_config_id); - if (TRACE_is_enabled()) - TRACE_start(); + simgrid::s4u::on_config_in_platform_done(); delete current_property_set; current_property_set = nullptr; }