updated slg linux code to support LocalModeCondition
diff --git a/load_generator/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/RunnableTransformer.java b/load_generator/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/RunnableTransformer.java
index dfb4eb1..a52ff89 100644
--- a/load_generator/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/RunnableTransformer.java
+++ b/load_generator/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/RunnableTransformer.java
@@ -154,9 +154,9 @@
}
public boolean processCustomProperties(boolean extOverwrite, final List<String> calls,
- final List<String> callsOverwrite, final ActivityGraph activityGraph) {
+ final List<String> callsOverwrite, final EObject parentOfActivityGraphItem) {
- for (EObject item : activityGraph.eContents()) {
+ for (EObject item : parentOfActivityGraphItem.eContents()) {
if (item instanceof CustomPropertyImpl) // custom property:
{
diff --git a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/customization/CustomRunnableTransformer.java b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/customization/CustomRunnableTransformer.java
index 7de1295..d34d2de 100644
--- a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/customization/CustomRunnableTransformer.java
+++ b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/customization/CustomRunnableTransformer.java
@@ -19,6 +19,7 @@
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -26,14 +27,26 @@
import java.util.Properties;
import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
+import org.eclipse.app4mc.amalthea.model.ConditionDisjunction;
+import org.eclipse.app4mc.amalthea.model.ConditionDisjunctionEntry;
+import org.eclipse.app4mc.amalthea.model.ILocalModeValueSource;
import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
+import org.eclipse.app4mc.amalthea.model.LocalModeCondition;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
+import org.eclipse.app4mc.amalthea.model.ModeLiteral;
+import org.eclipse.app4mc.amalthea.model.ModeLiteralConst;
import org.eclipse.app4mc.amalthea.model.Process;
import org.eclipse.app4mc.amalthea.model.Runnable;
+import org.eclipse.app4mc.amalthea.model.Switch;
+import org.eclipse.app4mc.amalthea.model.SwitchEntry;
import org.eclipse.app4mc.amalthea.model.Ticks;
import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore;
import org.eclipse.app4mc.slg.commons.m2t.transformers.SLGTranslationUnit;
import org.eclipse.app4mc.slg.commons.m2t.transformers.sw.ActivityGraphItemTransformer;
import org.eclipse.app4mc.slg.commons.m2t.transformers.sw.RunnableTransformer;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import com.google.inject.Inject;
@@ -105,95 +118,62 @@
@Override
protected void genFiles(final SLGTranslationUnit tu, final Runnable runnable) {
- boolean extOverwrite = false; // enabling codehook overwriting
+ boolean extOverwriteAtActivityGraph = false; // enabling codehook overwriting
if (isSrcFileEmpty(tu)) {
srcAppend(tu, "#include \"" + getIncFile(tu) + "\"\n");
srcAppend(tu, "#include \"ticksUtils.h\"\n");
}
+
+ customObjsStore.indexData(tu.getCall(), runnable);
final HashSet<String> includes = new LinkedHashSet<>();
final List<String> calls = new ArrayList<>();
final List<String> callsOverwrite = new ArrayList<>(); //overwrite codehook fct
+
+ final Map<SwitchEntry,List<String>> switchBasedCalls = new LinkedHashMap<SwitchEntry, List<String>>();
+
+ final Map<SwitchEntry,List<String>> switchBasedCallsOverwrite = new LinkedHashMap<SwitchEntry, List<String>>(); //overwrite codehook fct
+
+ final List<SwitchEntry> switchEntries=new ArrayList<SwitchEntry>();
+
+
+ final Map<SwitchEntry, Boolean> switchEntryOverwriteActivityGraph=new LinkedHashMap<SwitchEntry, Boolean>();
+
+
final List<Process> processedTasks = new ArrayList<>();
+ final List<ActivityGraphItem> defaultActivityGraphItems=new ArrayList<ActivityGraphItem>();
+
if (runnable != null && runnable.getActivityGraph() != null) {
-
- extOverwrite = processCustomProperties(extOverwrite, calls, callsOverwrite, runnable.getActivityGraph());
-
- // ************ Looping through all the elements inside ActivityGraph object
- for (final EObject item : runnable.getActivityGraph().eContents()) {
-
- if (item instanceof Ticks) {
- Ticks ticks = (Ticks) item;
- final Map<String, SLGTranslationUnit> translationUnits = activityGraphItemTransformer
- .transformAllItems(ticks); // Mc: move method to TicksTransformer ?
-
- SLGTranslationUnit defaultTicksTU = null;
- boolean ticksAssociatedToPUs = false;
-
- for (final Entry<String, SLGTranslationUnit> entry : translationUnits.entrySet()) {
- String puName = entry.getKey();
- SLGTranslationUnit tmpTU = entry.getValue();
-
- if (puName.equals("default")) {
- defaultTicksTU = tmpTU;
- } else {
- final String tmpIncFile = getIncFile(tmpTU);
- if (tmpIncFile != null && !tmpIncFile.isEmpty() && !getIncFile(tu).equals(tmpIncFile)) {
- includes.add(tmpIncFile);
- }
- final String call = tmpTU.getCall();
- if (call != null && !call.isEmpty()) {
- calls.add(ticksAssociatedToPUs ? "else if(strcmp(coreName,\"" + puName + "\")==0){"
- : " if(strcmp(coreName,\"" + puName + "\")==0){");
- calls.add(call);
- calls.add("}");
- ticksAssociatedToPUs = true;
- }
- }
- }
-
- if ((defaultTicksTU != null)) {
- if (ticksAssociatedToPUs) {
- calls.add("else ");
- calls.add("{");
- }
-
- if (defaultTicksTU.getCall() != null && !defaultTicksTU.getCall().isEmpty()) {
- calls.add(defaultTicksTU.getCall());
- }
-
- if (ticksAssociatedToPUs) {
- calls.add("}");
- }
-
- }
- } else if (item instanceof ActivityGraphItem) {
- if ((item instanceof InterProcessTrigger)) {
- InterProcessTrigger trigger = (InterProcessTrigger) item;
- // final ConfigModel configModel =
- // customObjsStore.<ConfigModel>getInstance(ConfigModel.class);
- final String value = CustomRunnableGenerator.handleInterProcessTrigger(trigger.getStimulus(),
- processedTasks);
- if (value != null && !value.trim().isEmpty()) {
- calls.add(value);
- }
- } else {
- final SLGTranslationUnit tmpTU = activityGraphItemTransformer
- .transform((ActivityGraphItem) item);
-
- final String tmpIncFile = getIncFile(tmpTU);
- if (tmpIncFile != null && !tmpIncFile.isEmpty() && !getIncFile(tu).equals(tmpIncFile)) {
- includes.add(tmpIncFile);
- }
- final String call = tmpTU.getCall();
- if (call != null && !call.isEmpty()) {
- calls.add(call);
- }
- }
+
+ EList<ActivityGraphItem> activityGraphItems = runnable.getActivityGraph().getItems();
+
+ for (ActivityGraphItem activityGraphItem : activityGraphItems) {
+
+ if(activityGraphItem instanceof Switch) {
+
+ for(SwitchEntry entry: ((Switch)activityGraphItem).getEntries()) {
+ switchBasedCalls.put(entry, new ArrayList<String>());
+ switchBasedCallsOverwrite.put(entry, new ArrayList<String>());
+ switchEntries.add(entry);
+ }
+ }else {
+ defaultActivityGraphItems.add(activityGraphItem);
}
+
}
+ extOverwriteAtActivityGraph = extracted(tu, new BasicEList<ActivityGraphItem>(defaultActivityGraphItems), extOverwriteAtActivityGraph, includes, calls, callsOverwrite, processedTasks);
+
+ for(SwitchEntry switchEntry: switchEntries) {
+
+ Boolean extOverwriteActivityGraph_switch = extracted(tu, switchEntry.getItems(), extOverwriteAtActivityGraph, includes, switchBasedCalls.get(switchEntry), switchBasedCallsOverwrite.get(switchEntry), processedTasks);
+
+ switchEntryOverwriteActivityGraph.put(switchEntry, extOverwriteActivityGraph_switch);
+
+ }
+
+
}
String runnableName = runnable.getName();
@@ -206,7 +186,7 @@
//------------------------ write body with overwrite codehook function
- if (extOverwrite) {
+ if (extOverwriteAtActivityGraph) {
String call_overwrite = "run_" + runnable.getName();
srcAppend(tu, "void " + call_overwrite + "(char* coreName){\n" + "\n");
@@ -215,15 +195,176 @@
srcAppend(tu, call + ";" + "\n");
}
srcAppend(tu, "\n" + "}" + "\n");
+
+ if(runnable.getLocalLabels().size()>0) {
+
+ //additional method for switch
+ srcAppend(tu, "void " + call_overwrite+"_Context" + "(char* coreName,"+getParamNames(runnable.getLocalLabels())+" ){\n" + "\n");
+
+ for(SwitchEntry switchEntry: switchEntries) {
+
+ if(switchEntryOverwriteActivityGraph.get(switchEntry)) {
+
+ srcAppend(tu, getConditionString(switchEntry) + "\n");
+
+ for (String call : switchBasedCallsOverwrite.get(switchEntry)) {
+ srcAppend(tu, call + ";" + "\n");
+ }
+
+ }else {
+ for (String call : switchBasedCalls.get(switchEntry)) {
+ srcAppend(tu, call + ";" + "\n");
+ }
+ }
+
+ }
+ srcAppend(tu, "\n" + "}" + "\n");
+ }
+
}
// ------------------------
else {
- toCpp(tu, calls); // write body without overwriting the codehook function
+ toCustomCpp(tu, calls,switchEntries,switchBasedCalls,runnable); // write body without overwriting the codehook function
}
}
+ private String getConditionString(SwitchEntry switchEntry) {
+
+ ConditionDisjunction condition = switchEntry.getCondition();
+
+ if(condition !=null) {
+
+ EList<ConditionDisjunctionEntry> entries = condition.getEntries();
+
+ for (ConditionDisjunctionEntry conditionDisjunctionEntry : entries) {
+
+ if(conditionDisjunctionEntry instanceof LocalModeCondition) {
+ LocalModeLabel localLabel = ((LocalModeCondition) conditionDisjunctionEntry).getLabel();
+
+ if(localLabel !=null) {
+
+ String localVariableName = localLabel.getName();
+
+
+ ILocalModeValueSource valueSource = ((LocalModeCondition) conditionDisjunctionEntry).getValueSource();
+
+ if(valueSource !=null && valueSource instanceof ModeLiteralConst) {
+ ModeLiteral value = ((ModeLiteralConst)valueSource).getValue();
+
+ String caseName= value.getName();
+
+ return "strcmp("+localVariableName+",\""+caseName+"\")==0";
+ }
+ }
+ }
+ }
+ }
+
+
+
+ return "false";
+ }
+
+ private String getParamNames(EList<LocalModeLabel> localLabels) {
+
+ List<String> ls=new ArrayList<String>();
+
+ for (LocalModeLabel localModeLabel : localLabels) {
+ ls.add("char* "+localModeLabel.getName());
+ }
+
+ return String.join(",", ls);
+ }
+
+ private boolean extracted(final SLGTranslationUnit tu, final EList<ActivityGraphItem> activityGraphItems, boolean extOverwrite,
+ final HashSet<String> includes, final List<String> calls, final List<String> callsOverwrite,
+ final List<Process> processedTasks) {
+
+ if(activityGraphItems.size()==0) {
+ return false;
+ }
+
+ extOverwrite = processCustomProperties(extOverwrite, calls, callsOverwrite,activityGraphItems.get(0).eContainer());
+
+ // ************ Looping through all the elements inside ActivityGraph object
+ for (final EObject item : activityGraphItems) {
+
+ if (item instanceof Ticks) {
+ Ticks ticks = (Ticks) item;
+ final Map<String, SLGTranslationUnit> translationUnits = activityGraphItemTransformer
+ .transformAllItems(ticks); // Mc: move method to TicksTransformer ?
+
+ SLGTranslationUnit defaultTicksTU = null;
+ boolean ticksAssociatedToPUs = false;
+
+ for (final Entry<String, SLGTranslationUnit> entry : translationUnits.entrySet()) {
+ String puName = entry.getKey();
+ SLGTranslationUnit tmpTU = entry.getValue();
+
+ if (puName.equals("default")) {
+ defaultTicksTU = tmpTU;
+ } else {
+ final String tmpIncFile = getIncFile(tmpTU);
+ if (tmpIncFile != null && !tmpIncFile.isEmpty() && !getIncFile(tu).equals(tmpIncFile)) {
+ includes.add(tmpIncFile);
+ }
+ final String call = tmpTU.getCall();
+ if (call != null && !call.isEmpty()) {
+ calls.add(ticksAssociatedToPUs ? "else if(strcmp(coreName,\"" + puName + "\")==0){"
+ : " if(strcmp(coreName,\"" + puName + "\")==0){");
+ calls.add(call);
+ calls.add("}");
+ ticksAssociatedToPUs = true;
+ }
+ }
+ }
+
+ if ((defaultTicksTU != null)) {
+ if (ticksAssociatedToPUs) {
+ calls.add("else ");
+ calls.add("{");
+ }
+
+ if (defaultTicksTU.getCall() != null && !defaultTicksTU.getCall().isEmpty()) {
+ calls.add(defaultTicksTU.getCall());
+ }
+
+ if (ticksAssociatedToPUs) {
+ calls.add("}");
+ }
+
+ }
+ } else if (item instanceof ActivityGraphItem) {
+ if ((item instanceof InterProcessTrigger)) {
+ InterProcessTrigger trigger = (InterProcessTrigger) item;
+ // final ConfigModel configModel =
+ // customObjsStore.<ConfigModel>getInstance(ConfigModel.class);
+ final String value = CustomRunnableGenerator.handleInterProcessTrigger(trigger.getStimulus(),
+ processedTasks);
+ if (value != null && !value.trim().isEmpty()) {
+ calls.add(value);
+ }
+ } else {
+ final SLGTranslationUnit tmpTU = activityGraphItemTransformer
+ .transform((ActivityGraphItem) item);
+
+ final String tmpIncFile = getIncFile(tmpTU);
+ if (tmpIncFile != null && !tmpIncFile.isEmpty() && !getIncFile(tu).equals(tmpIncFile)) {
+ includes.add(tmpIncFile);
+ }
+ final String call = tmpTU.getCall();
+ if (call != null && !call.isEmpty()) {
+ calls.add(call);
+ }
+ }
+ }
+ }
+ return extOverwrite;
+ }
+
+
@Override
@@ -238,6 +379,57 @@
srcAppend(tu, "}\n\n");
+
+
+
+ }
+
+ protected void toCustomCpp(final SLGTranslationUnit tu, final List<String> calls, List<SwitchEntry> switchEntries, Map<SwitchEntry, List<String>> switchBasedCalls, Runnable runnable) {
+
+
+ srcAppend(tu, "void " + tu.getCall() + "(char* coreName){\n");
+
+ for (String call : calls) {
+ srcAppend(tu, "\t" + call + (call.endsWith(")") ? ";" : "") + "\n");
+ }
+
+ srcAppend(tu, "}\n\n");
+
+ if(runnable.getLocalLabels().size()>0) {
+
+ //additional method for switch
+ srcAppend(tu, "void " + tu.getCall()+"_Context" + "(char* coreName,"+getParamNames(runnable.getLocalLabels())+" ){\n" + "\n");
+
+ for(SwitchEntry switchEntry: switchEntries) {
+
+ {
+ srcAppend(tu, "if("+getConditionString(switchEntry)+"){" + "\n");
+
+ for (String call : switchBasedCalls.get(switchEntry)) {
+ srcAppend(tu, call + ";" + "\n");
+ }
+ srcAppend(tu, "\n" + "}" + "\n");
+ }
+
+ }
+ srcAppend(tu, "\n" + "}" + "\n");
+ }
+
+
+
}
+
+ @Override
+ protected void toH(SLGTranslationUnit tu, String runnableName, HashSet<String> includes) {
+ // TODO Auto-generated method stub
+ super.toH(tu, runnableName, includes);
+
+ Object data = customObjsStore.getData(tu.getCall());
+ EList<LocalModeLabel> localLabels = ((Runnable)data).getLocalLabels();
+ if(localLabels.size()>0)
+ incAppend(tu, "void " + tu.getCall()+"_Context" + "(char* coreName"+","+getParamNames(localLabels)+" );\n");
+
+
+ }
}
diff --git a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java
index c439a20..039cf1e 100644
--- a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java
+++ b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxRunnableTransformer.java
@@ -153,55 +153,8 @@
incAppend(tu, "\n//Runnable " + runnable.getName() + "----\n");
incAppend(tu, "void " + "run_"+runnable.getName() + "(char* coreName);\n");
- Calculation calc = new Calculation();
- calc.ticksSumMap.put(DEFAULT, Integer.valueOf(0));
- if (runnable != null && runnable.getActivityGraph() != null) {
- for (ActivityGraphItem item : runnable.getActivityGraph().getItems()) {
- if (item instanceof Ticks) {
- Ticks ticks = (Ticks) item;
- if (ticks.getDefault() != null && ticks.getDefault().getAverage() != null) {
- calc.ticksSumMap.put(DEFAULT, calc.ticksSumMap.get(DEFAULT)+ticks.getDefault().getAverage().intValue());
- }
- Set<ProcessingUnitDefinition> puDefinitions = ticks.getExtended().keySet();
- for (ProcessingUnitDefinition puDef : puDefinitions) {
- if (puDef != null) {
- String puDefName = puDef.getName();
- if (!calc.ticksSumMap.containsKey(puDefName)) {
- calc.ticksSumMap.put(puDefName, 0);
- }
- calc.ticksSumMap.put(puDefName, calc.ticksSumMap.get(puDefName)
- + ticks.getExtended().get(puDef).getAverage().intValue());
- }
- }
- } else if (item instanceof LabelAccess) {
- LabelAccess la = (LabelAccess) item;
- Float value = Float
- .parseFloat(properties.getOrDefault("labelAccessStatisticValueDefault", "1.0F").toString());
-
- LabelAccessStatistic labelStatistic = la.getStatistic();
- if (labelStatistic != null) {
- NumericStatistic labelStatisticValue = labelStatistic.getValue();
-
- if (labelStatisticValue instanceof SingleValueStatistic) {
- value = ((SingleValueStatistic) labelStatisticValue).getValue();
- } else if (labelStatisticValue instanceof MinAvgMaxStatistic) {
- // TODO: provide a configuration option, to select appropriate value
- // from labelStatistic (min/max/avg)
- // right now considering the average value
- value = ((MinAvgMaxStatistic) labelStatisticValue).getAvg();
- }
- }
-
- if (la.getAccess() == LabelAccessEnum.READ) {
- calc.readsSum += value.intValue();
- } else if (la.getAccess() == LabelAccessEnum.WRITE) {
- calc.writesSum += value.intValue();
- }
- }
- }
- }
boolean useExperimental = Boolean.parseBoolean(properties.getProperty("experimentalCodeSnippetMatching"));
boolean enableExtCode = Boolean.parseBoolean(properties.getProperty("enableExternalCode"));
diff --git a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java
index a7c9ead..94a85a0 100644
--- a/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java
+++ b/load_generator/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/sw/LinuxTaskTransformer.java
@@ -26,8 +26,11 @@
import org.eclipse.app4mc.amalthea.model.Amalthea;
import org.eclipse.app4mc.amalthea.model.AmaltheaServices;
import org.eclipse.app4mc.amalthea.model.Group;
+import org.eclipse.app4mc.amalthea.model.ILocalModeValueSource;
import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabelAssignment;
+import org.eclipse.app4mc.amalthea.model.ModeLiteralConst;
import org.eclipse.app4mc.amalthea.model.Process;
import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
import org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition;
@@ -47,6 +50,7 @@
import org.eclipse.app4mc.slg.linux.transformers.LinuxBaseTransformer;
import org.eclipse.app4mc.transformation.TransformationConstants;
import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import com.google.inject.Inject;
@@ -181,12 +185,43 @@
final Runnable runnable = ((RunnableCall) item).getRunnable();
if ((runnable != null)) {
+ List<String> contextParameters=new ArrayList<String>();
+
+ EList<LocalModeLabelAssignment> context = ((RunnableCall)item).getContext();
+
+ for (LocalModeLabelAssignment localModeLabelAssignment : context) {
+
+ ILocalModeValueSource valueSource = localModeLabelAssignment.getValueSource();
+
+ if(valueSource !=null && valueSource instanceof ModeLiteralConst) {
+
+ contextParameters.add("\""+((ModeLiteralConst)valueSource).getValue().getName()+"\"");
+ }
+ }
+
+
+
+
if (enableInstrumentation_R) {
statements.add("instr_start();");
- statements.add("run_" + runnable.getName() + "(\"" + puDefinition.toString() + "\");");
+ if(contextParameters.size()>0) {
+
+ statements.add("run_" + runnable.getName()+"_Context" + "(\"" + puDefinition.toString() + "\","+String.join(",", contextParameters)+");");
+ }else {
+ statements.add("run_" + runnable.getName() + "(\"" + puDefinition.toString() + "\");");
+
+ }
statements.add("instr_stop();");
} else {
- statements.add("run_" + runnable.getName() + "(\"" + puDefinition.toString() + "\");");
+
+ if(contextParameters.size()>0) {
+
+ statements.add("run_" + runnable.getName()+"_Context" + "(\"" + puDefinition.toString() + "\","+String.join(",", contextParameters)+");");
+ }else {
+ statements.add("run_" + runnable.getName() + "(\"" + puDefinition.toString() + "\");");
+
+ }
+
}
}
} else if (item instanceof InterProcessTrigger) {
diff --git a/load_generator/releng/org.eclipse.app4mc.slg.linux.product/input/req/ModeLabelConditons.amxmi b/load_generator/releng/org.eclipse.app4mc.slg.linux.product/input/req/ModeLabelConditons.amxmi
index 7dc06da..4d24c59 100644
--- a/load_generator/releng/org.eclipse.app4mc.slg.linux.product/input/req/ModeLabelConditons.amxmi
+++ b/load_generator/releng/org.eclipse.app4mc.slg.linux.product/input/req/ModeLabelConditons.amxmi
@@ -15,7 +15,9 @@
<activityGraph>
<items xsi:type="am:Switch">
<entries name="CPU">
- <items xsi:type="am:Ticks"/>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="100"/>
+ </items>
<condition>
<entries xsi:type="am:LocalModeCondition" label="RunnableA/localContextA?type=LocalModeLabel" relation="EQUAL">
<valueSource xsi:type="am:ModeLiteralConst" value="Variants/cpu?type=ModeLiteral"/>
@@ -23,7 +25,9 @@
</condition>
</entries>
<entries name="CUDA">
- <items xsi:type="am:Ticks"/>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="100"/>
+ </items>
<condition>
<entries xsi:type="am:LocalModeCondition" label="RunnableA/localContextA?type=LocalModeLabel" relation="EQUAL">
<valueSource xsi:type="am:ModeLiteralConst" value="Variants/cuda?type=ModeLiteral"/>
@@ -31,7 +35,9 @@
</condition>
</entries>
<entries name="openMP">
- <items xsi:type="am:Ticks"/>
+ <items xsi:type="am:Ticks">
+ <default xsi:type="am:DiscreteValueConstant" value="100"/>
+ </items>
<condition>
<entries xsi:type="am:LocalModeCondition" label="RunnableA/localContextA?type=LocalModeLabel" relation="EQUAL">
<valueSource xsi:type="am:ModeLiteralConst" value="Variants/openMP?type=ModeLiteral"/>