Skip to content

Commit 87aaefc

Browse files
committed
Avoid hanging on Linux when launch xpm
Fix this by avoiding spawner in this case Workaround eclipse-cdt/cdt#1151 Fixes #626
1 parent 581648c commit 87aaefc

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

plugins/org.eclipse.embedcdt.ui/src/org/eclipse/embedcdt/ui/templates/core/processes/ConditionalRunCommandUi.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
import java.io.InputStreamReader;
77
import java.lang.reflect.InvocationTargetException;
88
import java.util.ArrayList;
9+
import java.util.Arrays;
910
import java.util.List;
1011
import java.util.Map;
1112

1213
import org.eclipse.cdt.core.templateengine.TemplateCore;
1314
import org.eclipse.cdt.core.templateengine.process.ProcessArgument;
1415
import org.eclipse.cdt.core.templateengine.process.ProcessFailureException;
1516
import org.eclipse.cdt.core.templateengine.process.ProcessRunner;
16-
import org.eclipse.cdt.utils.spawner.ProcessFactory;
1717
import org.eclipse.core.resources.IProject;
1818
import org.eclipse.core.resources.IResource;
1919
import org.eclipse.core.resources.ResourcesPlugin;
@@ -117,9 +117,6 @@ public void process(TemplateCore template, ProcessArgument[] args, String proces
117117
}
118118
}
119119

120-
// Inherit from parent process.
121-
String envp[] = null;
122-
123120
String substitutedCwd = EclipseUtils.performStringSubstitution(cwd);
124121
if (substitutedCwd == null) {
125122
// If substitution fails, revert to the original string, to alert
@@ -150,7 +147,10 @@ public void run(IProgressMonitor pm) throws InterruptedException {
150147
try {
151148
BufferedReader reader = null;
152149
pm.worked(1);
153-
Process process = ProcessFactory.getFactory().exec(cmdArray, envp, dir);
150+
ProcessBuilder processBuilder = new ProcessBuilder(Arrays.asList(cmdArray));
151+
processBuilder.directory(dir);
152+
153+
Process process = processBuilder.start();
154154
pm.worked(1);
155155
reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
156156

0 commit comments

Comments
 (0)