#include "xbt/log.h"
#include "xbt/str.h"
#include "xbt/ex.h" /* ex_backtrace_display */
+#include "mc/mc.h"
XBT_LOG_EXTERNAL_CATEGORY(simix);
XBT_LOG_EXTERNAL_CATEGORY(simix_action);
simix_global->kill_process_function = NULL;
simix_global->cleanup_process_function = SIMIX_process_cleanup;
-#ifdef HAVE_LATENCY_BOUND_TRACKING
- simix_global->latency_limited_dict = xbt_dict_new();
-#endif
-
surf_init(argc, argv); /* Initialize SURF structures */
SIMIX_context_mod_init();
SIMIX_create_maestro_process();
xbt_dict_free(&(simix_global->registered_functions));
xbt_dict_free(&(simix_global->host));
-#ifdef HAVE_LATENCY_BOUND_TRACKING
- xbt_dict_free(&(simix_global->latency_limited_dict));
-#endif
-
/* Let's free maestro now */
SIMIX_context_free(simix_global->maestro_process->context);
xbt_free(simix_global->maestro_process->running_ctx);
*/
XBT_INLINE double SIMIX_get_clock(void)
{
- return surf_get_clock();
+ if(MC_IS_ENABLED){
+ return MC_process_clock_get(SIMIX_process_self());
+ }else{
+ return surf_get_clock();
+ }
}
void SIMIX_run(void)
do {
do {
- DEBUG0("New Schedule Round");
+ DEBUG1("New Schedule Round; size(queue)=%lu",
+ xbt_dynar_length(simix_global->process_to_run));
SIMIX_context_runall(simix_global->process_to_run);
while ((req = SIMIX_request_pop())) {
DEBUG1("Handling request %p", req);
- SIMIX_request_pre(req);
+ SIMIX_request_pre(req, 0);
}
} while (xbt_dynar_length(simix_global->process_to_run));