X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a93d9a4ceb57a26d8fa1c3904ce7904ff727f2e1..5faf49cdf3f8ad8751317b857a6d3134fe07eda3:/src/simdag/sd_global.c diff --git a/src/simdag/sd_global.c b/src/simdag/sd_global.c index a2789bcd8a..e52086423b 100644 --- a/src/simdag/sd_global.c +++ b/src/simdag/sd_global.c @@ -132,12 +132,15 @@ void SD_application_reinit(void) xbt_swag_foreach_safe(done_task, next_done_task, sd_global->done_task_set){ if (xbt_dynar_is_empty(done_task->tasks_before)){ __SD_task_set_state(done_task, SD_SCHEDULABLE); - } else{ + } else{ __SD_task_set_state(done_task, SD_NOT_SCHEDULED); done_task->unsatisfied_dependencies = xbt_dynar_length(done_task->tasks_before); done_task->is_not_ready = done_task->unsatisfied_dependencies; - } + } + free(done_task->workstation_list); + done_task->workstation_list = NULL; + done_task->workstation_nb = 0; } xbt_swag_free(sd_global->done_task_set); @@ -158,6 +161,7 @@ void SD_application_reinit(void) #ifdef HAVE_JEDULE + jedule_sd_dump(); jedule_sd_cleanup(); jedule_sd_init(); #endif @@ -282,11 +286,10 @@ xbt_swag_t SD_simulate_swag(double how_long) { /* let's see which tasks are done */ xbt_dynar_foreach(model_list, iter, model) { - while ((action = xbt_swag_extract(model->states.done_action_set))) { - task = action->data; - task->start_time = - surf_workstation_model-> - action_get_start_time(task->surf_action); + while ((action = xbt_swag_extract(surf_model_done_action_set(model)))) { + task = surf_action_get_data(action); + task->start_time = surf_action_get_start_time(task->surf_action); + task->finish_time = surf_get_clock(); XBT_VERB("Task '%s' done", SD_task_get_name(task)); XBT_DEBUG("Calling __SD_task_just_done"); @@ -350,15 +353,13 @@ xbt_swag_t SD_simulate_swag(double how_long) { } /* let's see which tasks have just failed */ - while ((action = xbt_swag_extract(model->states.failed_action_set))) { - task = action->data; - task->start_time = - surf_workstation_model-> - action_get_start_time(task->surf_action); + while ((action = xbt_swag_extract(surf_model_failed_action_set(model)))) { + task = surf_action_get_data(action); + task->start_time = surf_action_get_start_time(task->surf_action); task->finish_time = surf_get_clock(); XBT_VERB("Task '%s' failed", SD_task_get_name(task)); __SD_task_set_state(task, SD_FAILED); - surf_workstation_model->action_unref(action); + surf_action_unref(action); task->surf_action = NULL; xbt_swag_insert(task,sd_global->return_set); @@ -434,35 +435,15 @@ void SD_exit(void) TRACE_end(); #endif - XBT_DEBUG("Exiting Surf..."); - surf_exit(); - xbt_free(sd_global); sd_global = NULL; #ifdef HAVE_JEDULE jedule_sd_dump(); jedule_sd_cleanup(); + jedule_sd_exit(); #endif -} -/** - * \brief load script file - */ - -void SD_load_environment_script(const char *script_file) -{ -#ifdef HAVE_LUA - lua_State *L = lua_open(); - luaL_openlibs(L); - - if (luaL_loadfile(L, script_file) || lua_pcall(L, 0, 0, 0)) { - printf("error: %s\n", lua_tostring(L, -1)); - return; - } -#else - xbt_die - ("Lua is not available!! to call SD_load_environment_script, lua should be available..."); -#endif - return; + XBT_DEBUG("Exiting Surf..."); + surf_exit(); }