\r
@Override\r
public void run() {\r
- if (fEntryList == null) {\r
+ ArrayList<ControlFlowEntry> entryList = fEntryList;\r
+ if (entryList == null) {\r
return;\r
}\r
- for (ControlFlowEntry entry : fEntryList) {\r
+ for (ControlFlowEntry entry : entryList) {\r
if (fMonitor.isCanceled()) {\r
return;\r
}\r
fStartTime = Long.MAX_VALUE;\r
fEndTime = Long.MIN_VALUE;\r
fSelectedExperiment = (TmfExperiment<ITmfEvent>) experiment;\r
- fEntryList = new ArrayList<ControlFlowEntry>();\r
+ ArrayList<ControlFlowEntry> entryList = new ArrayList<ControlFlowEntry>();\r
for (ITmfTrace<?> trace : experiment.getTraces()) {\r
if (trace instanceof CtfKernelTrace) {\r
CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
ppid = ppidInterval.getStateValue().unboxInt();\r
}\r
ControlFlowEntry entry = new ControlFlowEntry(threadQuark, ctfKernelTrace, execName, threadId, ppid, birthTime, startTime, endTime);\r
- fEntryList.add(entry);\r
+ entryList.add(entry);\r
entry.addEvent(new TimeEvent(entry, startTime, endTime - startTime));\r
} else {\r
birthTime = -1;\r
}\r
}\r
}\r
- buildTree();\r
+ buildTree(entryList);\r
refresh(INITIAL_WINDOW_OFFSET);\r
ControlFlowEntry[] entries = fEntryList.toArray(new ControlFlowEntry[0]);\r
Arrays.sort(entries);\r
}\r
}\r
\r
- private void buildTree() {\r
+ private void buildTree(ArrayList<ControlFlowEntry> entryList) {\r
ArrayList<ControlFlowEntry> rootList = new ArrayList<ControlFlowEntry>();\r
- for (ControlFlowEntry entry : fEntryList) {\r
+ for (ControlFlowEntry entry : entryList) {\r
boolean root = true;\r
if (entry.getPPID() > 0) {\r
- for (ControlFlowEntry parent : fEntryList) {\r
+ for (ControlFlowEntry parent : entryList) {\r
if (parent.getThreadId() == entry.getPPID() &&\r
entry.getStartTime() >= parent.getStartTime() &&\r
entry.getStartTime() <= parent.getEndTime()) {\r
return -1;\r
}\r
\r
+ @Override\r
+ public boolean hasTimeEvents() {\r
+ return false;\r
+ }\r
+\r
@Override\r
public Iterator<ITimeEvent> getTimeEventsIterator() {\r
return null;\r
\r
@Override\r
public void run() {\r
- if (fEntryList == null) {\r
+ ArrayList<TraceEntry> entryList = fEntryList;\r
+ if (entryList == null) {\r
return;\r
}\r
long resolution = Math.max(1, (fZoomEndTime - fZoomStartTime) / fDisplayWidth);\r
- for (TraceEntry traceEntry : fEntryList) {\r
+ for (TraceEntry traceEntry : entryList) {\r
for (ITimeGraphEntry child : traceEntry.getChildren()) {\r
ResourcesEntry entry = (ResourcesEntry) child;\r
if (fMonitor.isCanceled()) {\r
return;\r
}\r
fTimeGraphViewer.setStartFinishTime(startTime, endTime);\r
- fTimeGraphViewer.setSelectedTime(time, true);\r
+ fTimeGraphViewer.setSelectedTime(time, false);\r
startZoomThread(startTime, endTime);\r
}\r
});\r
fStartTime = Long.MAX_VALUE;\r
fEndTime = Long.MIN_VALUE;\r
fSelectedExperiment = (TmfExperiment<ITmfEvent>) experiment;\r
- fEntryList = new ArrayList<TraceEntry>();\r
+ ArrayList<TraceEntry> entryList = new ArrayList<TraceEntry>();\r
for (ITmfTrace<?> trace : experiment.getTraces()) {\r
if (trace instanceof CtfKernelTrace) {\r
CtfKernelTrace ctfKernelTrace = (CtfKernelTrace) trace;\r
TraceEntry groupEntry = new TraceEntry(ctfKernelTrace, trace.getName());\r
- fEntryList.add(groupEntry);\r
+ entryList.add(groupEntry);\r
IStateSystemQuerier ssq = ctfKernelTrace.getStateSystem();\r
long startTime = ssq.getStartTime();\r
long endTime = ssq.getCurrentEndTime() + 1;\r
}\r
}\r
}\r
+ fEntryList = entryList;\r
refresh(INITIAL_WINDOW_OFFSET);\r
for (TraceEntry traceEntry : fEntryList) {\r
CtfKernelTrace ctfKernelTrace = ((TraceEntry) traceEntry).getTrace();\r