XBT_PUBLIC(void) TRACE_help(int detailed);
XBT_PUBLIC(void) TRACE_surf_resource_utilization_alloc();
XBT_PUBLIC(void) TRACE_surf_resource_utilization_release();
-XBT_PUBLIC(void) TRACE_add_start_function(void (*func)(void));
-XBT_PUBLIC(void) TRACE_add_end_function(void (*func)(void));
SG_END_DECL()
-#endif
\ No newline at end of file
+#endif
trace_precision = xbt_cfg_get_int(OPT_TRACING_PRECISION);
}
-static std::vector<std::function<void()>> TRACE_start_functions;
-
-void TRACE_add_start_function(void (*func) ())
-{
- TRACE_start_functions.push_back(func);
-}
-
int TRACE_start()
{
if (TRACE_is_configured())
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<std::function<void()>> TRACE_end_functions;
-void TRACE_add_end_function(void (*func) (void))
-{
- TRACE_end_functions.push_back(func);
-}
-
int TRACE_end()
{
int retval;
PJ_container_release();
PJ_type_release();
- for (auto func: TRACE_end_functions)
- func();
- TRACE_start_functions.clear();
-
xbt_dict_free(&user_link_variables);
xbt_dict_free(&user_host_variables);
xbt_dict_free(&user_vm_variables);
#include "src/mc/mc_replay.h"
#include "src/msg/msg_private.h"
#include "src/simix/smx_private.h"
+#include "src/surf/surf_interface.hpp"
#include "surf/surf.h"
#include "xbt/replay.hpp"
#include <xbt/config.hpp>
* configuration tools */
return 0;
}
- smpi_init_logs();
TRACE_global_init(&argc, argv);
- TRACE_add_start_function(TRACE_smpi_alloc);
- TRACE_add_end_function(TRACE_smpi_release);
+ TRACE_smpi_alloc();
+ simgrid::surf::surfExitCallbacks.connect(TRACE_smpi_release);
SIMIX_global_init(&argc, argv);
MSG_init(&argc,argv);
SMPI_switch_data_segment = &smpi_switch_data_segment;
+ smpi_init_logs();
smpi_init_options();
// parse the platform file: get the host list
if (!future_evt_set)
future_evt_set = new simgrid::trace_mgr::future_evt_set();
- TRACE_add_start_function(TRACE_surf_alloc);
- TRACE_add_end_function(TRACE_surf_release);
+ TRACE_surf_alloc();
+ simgrid::surf::surfExitCallbacks.connect(TRACE_surf_release);
sg_config_init(argc, argv);