From: alegrand Date: Tue, 14 Aug 2007 13:20:35 +0000 (+0000) Subject: handle 0-size tasks. X-Git-Tag: v3.3~1273 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/605a304a8e17cf715e99ed259232eab41e6049cd handle 0-size tasks. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4087 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index 9b98902042..0f02192b31 100644 --- a/src/surf/maxmin.c +++ b/src/surf/maxmin.c @@ -443,7 +443,14 @@ void lmm_solve(lmm_system_t sys) var_list = &(sys->variable_set); DEBUG1("Variable set : %d", xbt_swag_size(var_list)); xbt_swag_foreach(var, var_list) { + int nb=0; + int i; var->value = 0.0; + for (i = 0; i < var->cnsts_number; i++) { + if(var->cnsts[i].value==0.0) nb++; + } + if((nb==var->cnsts_number) && (var->weight>0.0)) + var->value = 1.0; } /* diff --git a/src/surf/workstation_KCCFLN05.c b/src/surf/workstation_KCCFLN05.c index 97e1e7b817..9108c319b9 100644 --- a/src/surf/workstation_KCCFLN05.c +++ b/src/surf/workstation_KCCFLN05.c @@ -675,10 +675,6 @@ static surf_action_t execute_parallel_task(int workstation_nb, if (computation_amount[i] > 0) nb_host++; - - if (nb_link + nb_host == 0) /* was workstation_nb... */ - return NULL; - action = xbt_new0(s_surf_action_workstation_KCCFLN05_t, 1); DEBUG3("Creating a parallel task (%p) with %d cpus and %d links.", action, nb_host, nb_link); @@ -730,6 +726,11 @@ static surf_action_t execute_parallel_task(int workstation_nb, } } + if (nb_link + nb_host == 0) { + action->generic_action.cost = 1.0; + action->generic_action.remains = 0.0; + } + return (surf_action_t) action; }