diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java index 43b4a4ded8e..f6a2007482f 100755 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.multicorevisualizer.ui/src/org/eclipse/cdt/dsf/gdb/multicorevisualizer/internal/ui/view/MulticoreVisualizer.java @@ -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(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); } }); }