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

Private GIT Repository
Merge branch 'master' of ssh://info.iut-bm.univ-fcomte.fr/loba
authorcouturie <couturie@carcariass.(none)>
Sun, 30 Jan 2011 13:37:03 +0000 (14:37 +0100)
committercouturie <couturie@carcariass.(none)>
Sun, 30 Jan 2011 13:37:03 +0000 (14:37 +0100)
Conflicts:
loba_fairstrategy.cpp

1  2 
loba_fairstrategy.cpp

diff --combined loba_fairstrategy.cpp
index 87908920a04fe5fa0808044578cefaa4bfd55909,4ad0bff2be874cb0ce515858c68d11c109e88988..7e02a21361c646ea6aabc18e084d7233cc2ab219
@@@ -11,39 -11,30 +11,31 @@@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(loba)
   */
  
  class compare {
- public : 
-     bool operator()(const neighbor*a, const neighbor*b)       {
-         return a->get_load()>b->get_load();
+ public:
+     bool operator()(const neighbor*a, const neighbor*b) {
+         return a->get_load() > b->get_load();
      }
  };
  
double loba_fairstrategy::load_balance(double my_load)
void loba_fairstrategy::load_balance()
  {
      std::sort(pneigh.begin(), pneigh.end(), compare());
  
-     //print_loads_p();
 -    print_loads_p(false, xbt_log_priority_debug);
++              // print_loads_p();
++    //print_loads_p(false, xbt_log_priority_debug);
  
-     double sum_sent=0;
-     bool found=true;
-     
-     while(found) {
-         found=false;
+     bool found = true;
+     while (found) {
+         found = false;
          for (unsigned i = 0 ; i < pneigh.size() ; ++i) {
-             double l = pneigh[i]->get_load();
-             if (l >= my_load)
-                 continue;
-             if (l < my_load+2) {
-                 found=true;
-                 pneigh[i]->add_load(1);
-                 pneigh[i]->add_to_send(1);
-                 //INFO1("sent to %s",pneigh[i]->get_name());
-                 my_load--;
-                 sum_sent++;
+             if (pneigh[i]->get_load() <= get_load() - 2) {
+                 found = true;
+                 send(pneigh[i], 1);
+                 DEBUG1("sent to %s", pneigh[i]->get_name());
              }
          }
      }
-     return sum_sent;
  }
  
  // Local variables: