From ef889c26f953534d2ae3bb4662e92a0ac3fa1a14 Mon Sep 17 00:00:00 2001 From: Alvaro Sanchez-Leon Date: Fri, 13 Feb 2015 12:51:16 -0500 Subject: [PATCH] Bug 459901 - [visualizer] The visualizer may display duplicate elements Change-Id: I9fb3fb8f85ec51afde48a665e275c6080b9b9bab --- .../internal/ui/view/MulticoreVisualizer.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) 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); } }); }