- //printf("Gossip value is %.3f (%u) ((%d))\n", value, *aggregate, (int) *aggregate);
+ printlog(LOG_DEBUG, "Gossip: Read aggregate of %.3f from comm layer.\n", value);
+ }
+
+ for (i = 0; i < comm->remote_node_count; ++i) {
+ if (comm->remote_limiters[i].awol == threshold) {
+ /* Re-claim any value/weight sent. */
+ comm->gossip.value += comm->remote_limiters[i].outgoing.saved_value;
+ comm->gossip.weight += comm->remote_limiters[i].outgoing.saved_weight;
+
+ comm->remote_limiters[i].outgoing.saved_value = 0.0;
+ comm->remote_limiters[i].outgoing.saved_weight = 0.0;
+
+ comm->remote_limiters[i].awol += 1;
+ } else if (comm->remote_limiters[i].awol < threshold) {
+ comm->remote_limiters[i].awol += 1;
+ }