diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-12-17 11:14:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-17 11:14:13 +0100 |
| commit | c425a03c59e7d5c2e5d82988c61e340a6cbf61fe (patch) | |
| tree | 463126dbd4289a32149133db6d0cb350feacfbaf /opendc-simulator/opendc-simulator-compute/src | |
| parent | f55aaed2d41388712ec0cc90055831dae5d57896 (diff) | |
Updated the FlowEngine so nodes that have to be updated in the current cycle cannot be scheduled twice. (#284)
Updated the FlowNodeQueue
Diffstat (limited to 'opendc-simulator/opendc-simulator-compute/src')
2 files changed, 8 insertions, 0 deletions
diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java index 75bdde92..b612de2c 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java @@ -270,6 +270,10 @@ final class SimChainWorkload extends SimWorkload implements FlowSupplier { */ @Override public void removeSupplierEdge(FlowEdge supplierEdge) { + if (this.machineEdge == null) { + return; + } + this.stopWorkload(); } } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java index fbbe0815..8487fbc2 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java @@ -139,6 +139,10 @@ public class SimTraceWorkload extends SimWorkload implements FlowConsumer { @Override public void stopWorkload() { + if (this.machineEdge == null) { + return; + } + this.closeNode(); this.machineEdge = null; |
