* under the terms of the license (GNU LGPL) which comes with this package. */
#include "include/xbt/config.hpp"
+#include "simgrid/s4u/Engine.hpp"
#include "src/instr/instr_private.hpp"
#include "surf/surf.hpp"
#include <string>
}
}
-void TRACE_end()
+static void TRACE_end()
{
if (not trace_active)
return;
return;
is_initialised = true;
+
/* name of the tracefile */
simgrid::config::declare_flag<std::string>(OPT_TRACING_FILENAME, "Trace file created by the instrumented SimGrid.",
"simgrid.trace");
simgrid::config::declare_flag<int>(OPT_TRACING_PRECISION, "Numerical precision used when timestamping events "
"(expressed in number of digits after decimal point)",
6);
+
+ /* Connect callbacks */
+ simgrid::s4u::on_platform_creation.connect(TRACE_start);
+ simgrid::s4u::onDeadlock.connect(TRACE_end);
+ simgrid::s4u::onSimulationEnd.connect(TRACE_end);
}
static void print_line (const char *option, const char *desc, const char *longdesc, int detailed)
XBT_PRIVATE void TRACE_start();
XBT_PRIVATE void TRACE_TI_start();
XBT_PRIVATE void TRACE_TI_end();
-XBT_PRIVATE void TRACE_end();
XBT_PRIVATE void TRACE_global_init();
XBT_PRIVATE void TRACE_help(int detailed);
if (msg_global==nullptr)
return;
- TRACE_end();
delete msg_global;
msg_global = nullptr;
}
if (not simix_global->process_list.empty()) {
- TRACE_end();
-
if (simix_global->process_list.size() <= simix_global->daemons.size()) {
XBT_CRITICAL("Oops! Daemon actors cannot do any blocking activity (communications, synchronization, etc) "
"once the simulation is over. Please fix your on_exit() functions.");
}
smpi_global_destroy();
- TRACE_end();
-
return smpi_exit_status;
}
#include "simgrid/kernel/routing/VivaldiZone.hpp"
#include "simgrid/s4u/Engine.hpp"
#include "src/include/simgrid/sg_config.hpp"
-#include "src/instr/instr_private.hpp"
#include "src/kernel/EngineImpl.hpp"
#include "src/simix/smx_host_private.hpp"
#include "src/simix/smx_private.hpp"
/** Module management function: creates all internal data structures */
void sg_platf_init()
{
- simgrid::s4u::on_platform_creation.connect(TRACE_start);
simgrid::s4u::on_platform_created.connect(check_disk_attachment);
}
#include "mc/mc.h"
#include "simgrid/s4u/Engine.hpp"
#include "simgrid/sg_config.hpp"
-#include "src/instr/instr_private.hpp" // TRACE_end(). FIXME: remove by subscribing tracing to the surf signals
#include "src/internal_config.h"
#include "src/surf/HostImpl.hpp"
#include "src/surf/xml/platf.hpp"
#include "surf/surf.hpp"
+#include "xbt/module.h"
#include <fstream>
#include <string>
void surf_exit()
{
- TRACE_end(); /* Just in case it was not called by the upper layer (or there is no upper layer) */
-
simgrid::s4u::Engine::shutdown();
sg_link_exit();
for (auto const& e : storage_types) {