linux: make TID analysis handle no TID more gracefully - Bug 491275
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.os.linux.core / src / org / eclipse / tracecompass / analysis / os / linux / core / tid / ActiveTidStateProvider.java
index b15bcf9339091cc2f985b94f710825a05508ef10..d9f9dee5ff1a0397d89a92a5c3a59e6f8690aabf 100644 (file)
@@ -72,20 +72,21 @@ class ActiveTidStateProvider extends AbstractTmfStateProvider {
         if (cpu == null) {
             return;
         }
-        if (!event.getName().equals(fSchedSwitch)) {
-            return;
-        }
         ITmfStateSystemBuilder ssb = getStateSystemBuilder();
         if (ssb == null) {
             return;
         }
+        Integer cpuQuark = fCpuNumToQuark.get(cpu);
+        if (cpuQuark == null) {
+            // this will only happen once
+            String cpuAttributeName = NonNullUtils.nullToEmptyString(cpu);
+            cpuQuark = ssb.getQuarkAbsoluteAndAdd(cpuAttributeName);
+            fCpuNumToQuark.put(cpu, cpuQuark);
+        }
+        if (!event.getName().equals(fSchedSwitch)) {
+            return;
+        }
         try {
-            Integer cpuQuark = fCpuNumToQuark.get(cpu);
-            if (cpuQuark == null) {
-                String cpuAttributeName = NonNullUtils.nullToEmptyString(cpu);
-                cpuQuark = ssb.getQuarkAbsoluteAndAdd(cpuAttributeName);
-                fCpuNumToQuark.put(cpu, cpuQuark);
-            }
             int nextTid = ((Long) event.getContent().getField(fNextTid).getValue()).intValue();
             final TmfStateValue value = TmfStateValue.newValueInt(nextTid);
             ssb.modifyAttribute(event.getTimestamp().toNanos(), value, cpuQuark);
This page took 0.024321 seconds and 5 git commands to generate.