X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/6f372378ef955f9fbc8af757568a417e3d348ff3..16d0d07b6b60083606697f59b9ff3ae6692b09c3:/process.cpp?ds=sidebyside diff --git a/process.cpp b/process.cpp index a74b114..54573d3 100644 --- a/process.cpp +++ b/process.cpp @@ -83,8 +83,7 @@ int process::run() VERB0("Starting..."); comp_iter = lb_iter = 0; while (true) { - double ld = get_load(); - if (ld > 0.0) { + if (get_load() > 0.0) { double now = MSG_get_clock(); if (now < next_iter_after_date) MSG_process_sleep(next_iter_after_date - now); @@ -101,11 +100,10 @@ int process::run() lb_iter, real_load); } - ld -= load_balance(ld); + load_balance(); print_loads(true, xbt_log_priority_debug); } - set_load(ld); // send load information, and load (data) if any send_all(); @@ -174,11 +172,10 @@ int process::run() return 0; } -double process::load_balance(double /*my_load*/) +void process::load_balance() { if (lb_iter == 1) // warn only once WARN0("process::load_balance() is a no-op!"); - return 0.0; } void process::compute() @@ -196,6 +193,13 @@ void process::compute() } } +void process::send(neighbor& nb, double amount) +{ + set_load(get_load() - amount); + nb.set_to_send(nb.get_to_send() + amount); + nb.set_load(nb.get_load() + amount); // fixme: make this optional? +} + void process::send1_no_bookkeeping(neighbor& nb) { if (real_load != prev_load_broadcast)