From e7ae930f839b144f91df1eaca62b8f6441f380a7 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Fri, 22 May 2015 12:38:50 +0200 Subject: [PATCH] Bug 465674 - close terminal blocks eclipse UI on Mac OS X Destroy process before closing streams, except on Windows. --- .../connector/process/ProcessConnector.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java b/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java index 51212602684..63913543c95 100644 --- a/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java +++ b/plugins/org.eclipse.tm.terminal.connector.process/src/org/eclipse/tm/terminal/connector/process/ProcessConnector.java @@ -243,11 +243,20 @@ public class ProcessConnector extends AbstractStreamsConnector { // Stop monitoring the process monitor.dispose(); + boolean isWindows = Platform.OS_WIN32.equals(Platform.getOS()); + + if (!isWindows) { + // Destroy the process first, except on windows (Bug 465674) + if (process != null) { process.destroy(); process = null; } + } + // Dispose the streams super.doDisconnect(); - // Dispose the process - if (process != null) { process.destroy(); process = null; } + if (isWindows) { + // On Windows destroy the process after closing streams + if (process != null) { process.destroy(); process = null; } + } // Set the terminal control state to CLOSED. fControl.setState(TerminalState.CLOSED);