From 5ae69e168a0fab0dd2e13a99f28d04e9b3cc9d7f Mon Sep 17 00:00:00 2001
From: Marc Khouzam <marc.khouzam@ericsson.com>
Date: Mon, 9 May 2011 00:14:16 +0000
Subject: [PATCH] Bug 344892: Deadlock when trying to attach to more than one
 process on a remote target.  Small cleanup

---
 .../dsf/gdb/internal/ui/actions/GdbConnectCommand.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
index a4b1be91060..c6282f4dbcb 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/actions/GdbConnectCommand.java
@@ -159,22 +159,22 @@ public class GdbConnectCommand implements IConnect {
 
     	@Override
     	public IStatus runInUIThread(IProgressMonitor monitor) {
-    		final String[] binaryPath = new String[1];
-    		binaryPath[0] = null;
+    		String binaryPath = null;
     		
     		Shell shell = Display.getCurrent().getActiveShell();
     		if (shell != null) {
     			FileDialog fd = new FileDialog(shell, SWT.NONE);
-    			binaryPath[0] = fd.open();
+    			binaryPath = fd.open();
     		}
 
+    		final String finalBinaryPath = binaryPath;
         	fExecutor.execute(new DsfRunnable() {
         		public void run() {
         			IGDBProcesses procService = fTracker.getService(IGDBProcesses.class);
         			ICommandControlService commandControl = fTracker.getService(ICommandControlService.class);
 
         			IProcessDMContext procDmc = procService.createProcessContext(commandControl.getContext(), fPid);
-        			procService.attachDebuggerToProcess(procDmc, binaryPath[0], new DataRequestMonitor<IDMContext>(fExecutor, fRm));
+        			procService.attachDebuggerToProcess(procDmc, finalBinaryPath, new DataRequestMonitor<IDMContext>(fExecutor, fRm));
         		}
         	});