summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2005-12-14 20:26:30 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2005-12-14 20:26:30 +0000
commit11d63577f44af4caa2ecc5553ac23359e83b18a3 (patch)
treebe49f6212eaf71cbf9f9894895d2f88a043b2a60 /libjava/gnu/java
parent3768cfc2782a9ffe435950e6fc12fa9b35d4e5d4 (diff)
downloadppe42-gcc-11d63577f44af4caa2ecc5553ac23359e83b18a3.tar.gz
ppe42-gcc-11d63577f44af4caa2ecc5553ac23359e83b18a3.zip
2005-12-14 Andrew Haley <aph@redhat.com>
* gnu/java/rmi/rmic/CompilerProcess.java: Use a new thread to handle stdout from the child process. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108536 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/java')
-rw-r--r--libjava/gnu/java/rmi/rmic/CompilerProcess.java25
1 files changed, 21 insertions, 4 deletions
diff --git a/libjava/gnu/java/rmi/rmic/CompilerProcess.java b/libjava/gnu/java/rmi/rmic/CompilerProcess.java
index 3cf801d42d2..09f8d9c07b4 100644
--- a/libjava/gnu/java/rmi/rmic/CompilerProcess.java
+++ b/libjava/gnu/java/rmi/rmic/CompilerProcess.java
@@ -89,10 +89,27 @@ public abstract class CompilerProcess extends Compiler
String[] args = computeArguments (name);
Process p = Runtime.getRuntime ().exec (args);
- /* Print compiler output to System.out. */
- InputStream procin = p.getInputStream();
- for (int ch = procin.read(); ch != -1; ch = procin.read())
- System.out.print((char) ch);
+ /* Print compiler output to System.out. Do this asynchronously so
+ that the compiler never blocks writing to its stdout. */
+ {
+ final InputStream procin = p.getInputStream();
+ final Thread copier = new Thread()
+ {
+ public void run()
+ {
+ try
+ {
+ for (int ch = procin.read(); ch != -1; ch = procin.read())
+ System.out.print((char) ch);
+ }
+ catch (java.io.IOException _)
+ {
+ }
+ }
+ };
+
+ copier.start();
+ }
/* Collect compiler error output in a buffer.
* If compilation fails, it will be used for an error message.
OpenPOWER on IntegriCloud