summaryrefslogtreecommitdiff
path: root/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc')
-rw-r--r--opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/graph/distributionPolicies/MaxMinFairnessFlowDistributor.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/graph/distributionPolicies/MaxMinFairnessFlowDistributor.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/graph/distributionPolicies/MaxMinFairnessFlowDistributor.java
index 875412c6..e5e4eb59 100644
--- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/graph/distributionPolicies/MaxMinFairnessFlowDistributor.java
+++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/graph/distributionPolicies/MaxMinFairnessFlowDistributor.java
@@ -43,13 +43,19 @@ public class MaxMinFairnessFlowDistributor extends FlowDistributor {
}
protected void updateOutgoingDemand() {
+ if (this.totalIncomingDemand == this.previousTotalDemand) {
+ this.outgoingDemandUpdateNeeded = false;
+ this.updateOutgoingSupplies();
+ return;
+ }
+
+ this.previousTotalDemand = this.totalIncomingDemand;
+
for (FlowEdge supplierEdge : this.supplierEdges.values()) {
this.pushOutgoingDemand(supplierEdge, this.totalIncomingDemand / this.supplierEdges.size());
}
this.outgoingDemandUpdateNeeded = false;
-
- this.invalidate();
}
// TODO: This should probably be moved to the distribution strategy