]> AND Private Git Repository - loba.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Fix loba_simple.
authorArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 23 Feb 2011 17:20:20 +0000 (18:20 +0100)
committerArnaud Giersch <arnaud.giersch@iut-bm.univ-fcomte.fr>
Wed, 23 Feb 2011 17:20:20 +0000 (18:20 +0100)
It was not doing exactly what was envisioned.

loba_simple.cpp

index 3858acc3def5cdce168f93a3e8d3a3a0b54d46b6..5a0a153a706e46b7769d37eb8b06b5f93757c776 100644 (file)
@@ -27,10 +27,11 @@ void loba_simple::load_balance()
             max = l;
         }
     }
-    if (imin != -1) {
-        // found someone
-        double balance = (get_load() - max) / 2;
-        XBT_DEBUG("%d:%g %d:%g %g %g", imin, min, imax, max, get_load(), balance);
+    if (imin != -1) {           // found someone
+        double balance = std::min((get_load() - min) / 2.0,
+                                  (get_load() - max));
+        XBT_DEBUG("%d:%g %d:%g %g %g",
+                  imin, min, imax, max, get_load(), balance);
         send(pneigh[imin], balance);
     }
 }