[yocto] [eclipse-poky][branch:windows-build][PATCH 1/4] Adapt usage of LocalHostShell lock and reader to upstream changes
Ioana Grigoropol
ioanax.grigoropol at intel.com
Thu May 23 07:38:32 PDT 2013
Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
.../org/yocto/bc/remote/utils/RemoteHelper.java | 27 +++++++++++++++-----
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
index 507ac54..87c8637 100644
--- a/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
+++ b/plugins/org.yocto.bc.ui/src/org/yocto/bc/remote/utils/RemoteHelper.java
@@ -35,6 +35,7 @@ import org.eclipse.rse.core.RSECorePlugin;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.subsystems.ISubSystem;
+import org.eclipse.rse.internal.services.local.shells.LocalHostShell;
import org.eclipse.rse.services.IService;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
import org.eclipse.rse.services.files.IFileService;
@@ -87,18 +88,31 @@ public class RemoteHelper {
if (hostShell == null)
throw new Exception("An error has occured while trying to run remote command!");
- Lock lock = hostShell.getLock();
- lock.lock();
+ Lock lock = null;
+ if (hostShell instanceof LocalHostShell) {
+ lock = ((LocalHostShell)hostShell).getLock();
+ lock.lock();
+ }
ProcessStreamBuffer processBuffer = new ProcessStreamBuffer();
- BufferedReader inbr = hostShell.getReader(false);
- BufferedReader errbr = hostShell.getReader(true);
+ BufferedReader inbr = null;
+ BufferedReader errbr = null;
+
+ if (hostShell instanceof LocalHostShell) {
+ inbr = ((LocalHostShell)hostShell).getReader(false);
+ errbr = ((LocalHostShell)hostShell).getReader(true);
+ } else {
+ Process p = new HostShellProcessAdapter(hostShell);
+ inbr = new BufferedReader(new InputStreamReader(p.getInputStream()));
+ errbr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
+ }
boolean cancel = false;
while (!cancel) {
if(monitor.isCanceled()) {
cancel = true;
- lock.unlock();
+ if (lock != null)
+ lock.unlock();
throw new InterruptedException("User Cancelled");
}
StringBuffer buffer = new StringBuffer();
@@ -135,7 +149,8 @@ public class RemoteHelper {
}
cancel = true;
}
- lock.unlock();
+ if (lock != null)
+ lock.unlock();
return processBuffer;
}
--
1.7.9.5
More information about the yocto
mailing list