package mvd.jester.simulator; import mvd.jester.model.SystemSetup; import mvd.jester.model.SynchronousTask; import mvd.jester.simulator.internals.dynamicforkjoin.TaskContext; /** * SchmidMottok */ public class DynamicForkJoin extends AbstractSimulator { public DynamicForkJoin(SystemSetup systemSetup) { super(systemSetup); } @Override protected boolean releaseTasks(long timeStep) { for (SynchronousTask t : systemSetup.getTasks()) { if (timeStep % t.getPeriod() == 0) { TaskContext tc = new TaskContext(t, systemSetup.getNumberOfProcessors(), timeStep); if (!readyTasks.add(tc)) { EventPrinter .print("Time " + timeStep + ": Task " + tc + " could not be released!"); return false; } EventPrinter.print("Time " + timeStep + ": Task " + tc + " released!"); } } return true; } @Override public String getName() { return "SchmidMottok"; } }