diff options
| author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-14 20:26:30 +0000 |
|---|---|---|
| committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-12-14 20:26:30 +0000 |
| commit | 11d63577f44af4caa2ecc5553ac23359e83b18a3 (patch) | |
| tree | be49f6212eaf71cbf9f9894895d2f88a043b2a60 /libjava/gnu/java | |
| parent | 3768cfc2782a9ffe435950e6fc12fa9b35d4e5d4 (diff) | |
| download | ppe42-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.java | 25 |
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. |

