X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/10251abe2a55811ff42746c37e44e7995df9f246..fb16a823471f1284f6ea9162e9829b3d91ad49d0:/src/surf/surf_c_bindings.cpp?ds=sidebyside diff --git a/src/surf/surf_c_bindings.cpp b/src/surf/surf_c_bindings.cpp index eba945250a..6ea7968267 100644 --- a/src/surf/surf_c_bindings.cpp +++ b/src/surf/surf_c_bindings.cpp @@ -26,14 +26,7 @@ static VM *get_casted_vm(surf_resource_t resource){ return static_cast(surf_host_resource_priv(resource)); } -char *surf_routing_edge_name(sg_routing_edge_t edge){ - return edge->getName(); -} - extern double NOW; -extern double *surf_mins; /* return value of share_resources for each model */ -extern int surf_min_index; /* current index in surf_mins */ -extern double surf_min; /* duration determined by surf_solve */ void surf_presolve(void) { @@ -44,8 +37,8 @@ void surf_presolve(void) Model *model = NULL; unsigned int iter; - XBT_DEBUG - ("First Run! Let's \"purge\" events and put models in the right state"); + XBT_DEBUG ("First Run! Let's \"purge\" events and put models in the right state"); + while ((next_event_date = tmgr_history_next_date(history)) != -1.0) { if (next_event_date > NOW) break; @@ -64,7 +57,7 @@ void surf_presolve(void) double surf_solve(double max_date) { - surf_min = -1.0; /* duration */ + double surf_min = -1.0; /* duration */ double next_event_date = -1.0; double model_next_action_end = -1.0; double value = -1.0; @@ -81,31 +74,18 @@ double surf_solve(double max_date) } XBT_DEBUG("Looking for next action end for all models except NS3"); - - if (surf_mins == NULL) { - surf_mins = xbt_new(double, xbt_dynar_length(model_list_invoke)); - } - surf_min_index = 0; - - /* sequential version */ xbt_dynar_foreach(model_list_invoke, iter, model) { double next_action_end = -1.0; - int i = __sync_fetch_and_add(&surf_min_index, 1); if (strcmp(model->getName(), "network NS3")) { XBT_DEBUG("Running for Resource [%s]", model->getName()); next_action_end = model->shareResources(NOW); XBT_DEBUG("Resource [%s] : next action end = %f", model->getName(), next_action_end); } - surf_mins[i] = next_action_end; - } - - unsigned i; - for (i = 0; i < xbt_dynar_length(model_list_invoke); i++) { - if ((surf_min < 0.0 || surf_mins[i] < surf_min) - && surf_mins[i] >= 0.0) { - surf_min = surf_mins[i]; - } + if ((surf_min < 0.0 || next_action_end < surf_min) + && next_action_end >= 0.0) { + surf_min = next_action_end; + } } XBT_DEBUG("Min for resources (remember that NS3 don't update that value) : %f", surf_min);