1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 459901 - [visualizer] The visualizer may display duplicate elements

Change-Id: I9fb3fb8f85ec51afde48a665e275c6080b9b9bab
This commit is contained in:
Alvaro Sanchez-Leon 2015-02-13 12:51:16 -05:00 committed by Gerrit Code Review @ Eclipse.org
parent 7e3a37be7b
commit ef889c26f9

View file

@ -1132,12 +1132,13 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer implements IPin
DsfSession session = DsfSession.getSession(sessionId);
if (session != null) {
fDataModel = new VisualizerModel(sessionId);
final VisualizerModel model = new VisualizerModel(sessionId);
fDataModel = model;
fTargetData.getCPUs(m_sessionState, new DataRequestMonitor<ICPUDMContext[]>(session.getExecutor(), null) {
@Override
protected void handleCompleted() {
ICPUDMContext[] cpuContexts = isSuccess() ? getData() : null;
getCPUsDone(cpuContexts, fDataModel);
getCPUsDone(cpuContexts, model);
}
});
}
@ -1146,8 +1147,8 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer implements IPin
/** Invoked when getModel() request completes. */
@ConfinedToDsfExecutor("getSession().getExecutor()")
public void getVisualizerModelDone(VisualizerModel model) {
fDataModel.setLoadMetersEnabled(m_loadMetersEnabled);
updateLoads();
model.setLoadMetersEnabled(m_loadMetersEnabled);
updateLoads(model);
model.sort();
setCanvasModel(model);
}
@ -1375,10 +1376,9 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer implements IPin
done(1, model);
}
/** Updates the loads for all cpus and cores */
@ConfinedToDsfExecutor("getSession().getExecutor()")
public void updateLoads() {
public void updateLoads(final VisualizerModel model) {
if (m_cpuCoreContextsCache.isEmpty()) {
// not ready to get load info yet
return;
@ -1388,8 +1388,6 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer implements IPin
return;
}
final VisualizerModel model = fDataModel;
model.getLoadTodo().dispose();
// keep track of how many loads we expect
model.getLoadTodo().add(m_cpuCoreContextsCache.size());
@ -1470,7 +1468,8 @@ public class MulticoreVisualizer extends GraphicCanvasVisualizer implements IPin
executor.execute(new Runnable() {
@Override
public void run() {
updateLoads();
final VisualizerModel model = fDataModel;
updateLoads(model);
}
});
}