From: Arnaud Giersch Date: Tue, 25 Jan 2011 09:35:51 +0000 (+0100) Subject: Define process::get_load() and set_load() instead of lb_load(). X-Git-Tag: v0.1~188^2~14 X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/commitdiff_plain/6f372378ef955f9fbc8af757568a417e3d348ff3?hp=--cc Define process::get_load() and set_load() instead of lb_load(). --- 6f372378ef955f9fbc8af757568a417e3d348ff3 diff --git a/process.cpp b/process.cpp index 6d791bd..a74b114 100644 --- a/process.cpp +++ b/process.cpp @@ -83,7 +83,7 @@ int process::run() VERB0("Starting..."); comp_iter = lb_iter = 0; while (true) { - double ld = lb_load(); + double ld = get_load(); if (ld > 0.0) { double now = MSG_get_clock(); if (now < next_iter_after_date) @@ -105,7 +105,7 @@ int process::run() print_loads(true, xbt_log_priority_debug); } - lb_load() = ld; + set_load(ld); // send load information, and load (data) if any send_all(); @@ -130,7 +130,7 @@ int process::run() // block on receiving unless there is something to compute or // to send double timeout; - if (real_load != 0 || lb_load() != prev_load_broadcast) + if (real_load != 0 || get_load() != prev_load_broadcast) timeout = 0.0; else if (opt::min_iter_duration) timeout = opt::min_iter_duration; diff --git a/process.h b/process.h index 8f96fd8..1374bf4 100644 --- a/process.h +++ b/process.h @@ -39,6 +39,11 @@ protected: pneigh_type pneigh; // list of pointers to neighbors that // we are free to reorder + // Get and set current load, which may be real load, or expected + // load if opt::bookkeeping is true. + double get_load() const; + void set_load(double load); + // Calls neighbor::print(verbose, logp, cat) for each member of neigh. void print_loads(bool verbose = false, e_xbt_log_priority_t logp = xbt_log_priority_info, @@ -77,8 +82,6 @@ private: double real_load; // current load double expected_load; // expected load in bookkeeping mode - double& lb_load() { return opt::bookkeeping ? expected_load : real_load; } - // The load balancing algorithm comes here... // Parameter "my_load" is the load to take into account for myself // (may be real load or expected load). @@ -107,6 +110,24 @@ private: void finalize(); }; +inline +double process::get_load() const +{ + if (opt::bookkeeping) + return expected_load; + else + return real_load; +} + +inline +void process::set_load(double load) +{ + if (opt::bookkeeping) + expected_load = load; + else + real_load = load; +} + #endif // !PROCESS_H // Local variables: