X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d7fe15f62820f53f48d0f894212373fac36e449b..10f23d04cb0a60324df495c7b2e57704b57874b8:/src/surf/surf.c diff --git a/src/surf/surf.c b/src/surf/surf.c index 166c13403d..d85df52fa6 100644 --- a/src/surf/surf.c +++ b/src/surf/surf.c @@ -454,20 +454,14 @@ void surf_exit(void) xbt_exit(); } -double surf_solve(void) -{ - static int first_run = 1; - - double min = -1.0; +void surf_presolve(void) { double next_event_date = -1.0; - double model_next_action_end = -1.0; + tmgr_trace_event_t event = NULL; double value = -1.0; surf_model_object_t model_obj = NULL; surf_model_t model = NULL; - tmgr_trace_event_t event = NULL; unsigned int iter; - - if (first_run) { + DEBUG0 ("First Run! Let's \"purge\" events and put models in the right state"); while ((next_event_date = tmgr_history_next_date(history)) != -1.0) { @@ -478,15 +472,24 @@ double surf_solve(void) &value, (void **) &model_obj))) { model_obj->model->common_private-> - update_resource_state(model_obj, event, value); + update_resource_state(model_obj, event, value,NOW); } } xbt_dynar_foreach(model_list, iter, model) { model->common_private->update_actions_state(NOW, 0.0); } - first_run = 0; - return 0.0; - } +} + +double surf_solve(void) +{ + double min = -1.0; + double next_event_date = -1.0; + double model_next_action_end = -1.0; + double value = -1.0; + surf_model_object_t model_obj = NULL; + surf_model_t model = NULL; + tmgr_trace_event_t event = NULL; + unsigned int iter; min = -1.0; @@ -526,7 +529,7 @@ double surf_solve(void) /* update state of model_obj according to new value. Does not touch lmm. It will be modified if needed when updating actions */ model_obj->model->common_private-> - update_resource_state(model_obj, event, value); + update_resource_state(model_obj, event, value,NOW+min); } }