X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ff4e6203e4fb526267cc197ee3fa41e5d075608e..da994ba1ded3e6d6fc8381444c0bab18a511a18d:/src/simdag/sd_global.cpp diff --git a/src/simdag/sd_global.cpp b/src/simdag/sd_global.cpp index 0a88d5ceea..9c0780032b 100644 --- a/src/simdag/sd_global.cpp +++ b/src/simdag/sd_global.cpp @@ -40,9 +40,9 @@ void SD_init(int *argc, char **argv) sd_global->task_mallocator=xbt_mallocator_new(65536, SD_task_new_f, SD_task_free_f, SD_task_recycle_f); - sd_global->initial_task_set = new std::vector(); - sd_global->executable_task_set = new std::vector(); - sd_global->completed_task_set = new std::vector(); + sd_global->initial_tasks = new std::set(); + sd_global->executable_tasks = new std::set(); + sd_global->completed_tasks = new std::set(); sd_global->return_set = xbt_dynar_new(sizeof(SD_task_t), nullptr); surf_init(argc, argv); @@ -129,8 +129,9 @@ xbt_dynar_t SD_simulate(double how_long) { xbt_dynar_reset(sd_global->return_set); /* explore the runnable tasks */ - for (unsigned int i =0; i < sd_global->executable_task_set->size(); i++) { - task = sd_global->executable_task_set->at(i); + for (std::set::iterator it=sd_global->executable_tasks->begin(); + it!=sd_global->executable_tasks->end(); ++it){ + task = *it; XBT_VERB("Executing task '%s'", SD_task_get_name(task)); SD_task_run(task); xbt_dynar_push(sd_global->return_set, &task); @@ -229,13 +230,14 @@ xbt_dynar_t SD_simulate(double how_long) { } } - if (!sd_global->watch_point_reached && how_long<0 && !sd_global->initial_task_set->empty()) { - XBT_WARN("Simulation is finished but %lu tasks are still not done", - sd_global->initial_task_set->size()); + if (!sd_global->watch_point_reached && how_long<0 && !sd_global->initial_tasks->empty()) { + XBT_WARN("Simulation is finished but %zu tasks are still not done", + sd_global->initial_tasks->size()); static const char* state_names[] = { "SD_NOT_SCHEDULED", "SD_SCHEDULABLE", "SD_SCHEDULED", "SD_RUNNABLE", "SD_RUNNING", "SD_DONE","SD_FAILED" }; - for (unsigned int i=0; i< sd_global->initial_task_set->size() ; i++){ - task = sd_global->initial_task_set->at(i); + for (std::set::iterator it=sd_global->initial_tasks->begin(); + it!=sd_global->initial_tasks->end(); ++it){ + task = *it; XBT_WARN("%s is in %s state", SD_task_get_name(task), state_names[SD_task_get_state(task)]); } } @@ -269,9 +271,9 @@ void SD_exit() #endif xbt_mallocator_free(sd_global->task_mallocator); - delete sd_global->initial_task_set; - delete sd_global->executable_task_set; - delete sd_global->completed_task_set; + delete sd_global->initial_tasks; + delete sd_global->executable_tasks; + delete sd_global->completed_tasks; xbt_dynar_free_container(&(sd_global->return_set)); xbt_free(sd_global); sd_global = nullptr;