diff options
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src')
| -rw-r--r-- | opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt index 3a2416a8..ee2cb319 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt @@ -108,18 +108,26 @@ public class Guest( 0, 0.0, ) - val newChainWorkload = - ChainWorkload( - ArrayList(listOf(task.workload)), - task.workload.checkpointInterval, - task.workload.checkpointDuration, - task.workload.checkpointIntervalScaling, - ) - virtualMachine = - simMachine.startWorkload(newChainWorkload) { cause -> - onStop(if (cause != null) TaskState.FAILED else TaskState.COMPLETED) - } + if (task.workload is TraceWorkload) { + val newChainWorkload = + ChainWorkload( + ArrayList(listOf(task.workload)), + task.workload.checkpointInterval, + task.workload.checkpointDuration, + task.workload.checkpointIntervalScaling, + ) + + virtualMachine = + simMachine.startWorkload(newChainWorkload) { cause -> + onStop(if (cause != null) TaskState.FAILED else TaskState.COMPLETED) + } + } else { + virtualMachine = + simMachine.startWorkload(task.workload) { cause -> + onStop(if (cause != null) TaskState.FAILED else TaskState.COMPLETED) + } + } } /** |
