os.linux: Add per cpu thread 0 modeling
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.os.linux.core / src / org / eclipse / tracecompass / internal / analysis / os / linux / core / kernel / handlers / ProcessFreeHandler.java
index ec593e461637c6bcfc553bff28e8bbd92e07143e..7c3b4d4be911523da70c0061a8a9faca69122e9d 100644 (file)
@@ -35,11 +35,18 @@ public class ProcessFreeHandler extends KernelEventHandler {
     @Override
     public void handleEvent(ITmfStateSystemBuilder ss, ITmfEvent event) throws AttributeNotFoundException {
 
+        Integer cpu = KernelEventHandlerUtils.getCpu(event);
         Integer tid = ((Long) event.getContent().getField(getLayout().fieldTid()).getValue()).intValue();
+
+        String threadAttributeName = KernelEventHandlerUtils.buildThreadAttributeName(tid, cpu);
+        if (threadAttributeName == null) {
+            return;
+        }
+
         /*
          * Remove the process and all its sub-attributes from the current state
          */
-        int quark = ss.getQuarkRelativeAndAdd(KernelEventHandlerUtils.getNodeThreads(ss), tid.toString());
+        int quark = ss.getQuarkRelativeAndAdd(KernelEventHandlerUtils.getNodeThreads(ss), threadAttributeName);
         ss.removeAttribute(KernelEventHandlerUtils.getTimestamp(event), quark);
     }
 }
This page took 0.024652 seconds and 5 git commands to generate.