diff options
author | Tom Tromey <tromey@redhat.com> | 2002-06-15 19:45:34 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-06-15 19:45:34 +0000 |
commit | 3e1b181a6785c3b77b1cd877a8f6759efad6cfe8 (patch) | |
tree | 6325e924516b02fb0d87553b0923dd855f975914 /libjava/java/lang/Process.java | |
parent | 34442f32a2407deff70df24c62713044748caf84 (diff) | |
download | gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.zip gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.gz gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.bz2 |
AbstractMethodError.java: Re-merged with Classpath.
* java/lang/AbstractMethodError.java: Re-merged with Classpath.
* java/lang/ArithmeticException.java: Likewise.
* java/lang/ArrayIndexOutOfBoundsException.java: Likewise.
* java/lang/ArrayStoreException.java: Likewise.
* java/lang/Byte.java: Likewise.
* java/lang/CharSequence.java: Likewise.
* java/lang/ClassCastException.java: Likewise.
* java/lang/ClassCircularityError.java: Likewise.
* java/lang/ClassFormatError.java: Likewise.
* java/lang/CloneNotSupportedException.java: Likewise.
* java/lang/Cloneable.java: Likewise.
* java/lang/Comparable.java: Likewise.
* java/lang/Compiler.java: Likewise.
* java/lang/Error.java: Likewise.
* java/lang/ExceptionInInitializerError.java: Likewise.
* java/lang/IllegalAccessError.java: Likewise.
* java/lang/IllegalAccessException.java: Likewise.
* java/lang/IllegalArgumentException.java: Likewise.
* java/lang/IllegalMonitorStateException.java: Likewise.
* java/lang/IllegalStateException.java: Likewise.
* java/lang/IllegalThreadStateException.java: Likewise.
* java/lang/IncompatibleClassChangeError.java: Likewise.
* java/lang/IndexOutOfBoundsException.java: Likewise.
* java/lang/InheritableThreadLocal.java: Likewise.
* java/lang/InstantiationError.java: Likewise.
* java/lang/InstantiationException.java: Likewise.
* java/lang/InternalError.java: Likewise.
* java/lang/InterruptedException.java: Likewise.
* java/lang/LinkageError.java: Likewise.
* java/lang/NegativeArraySizeException.java: Likewise.
* java/lang/NoClassDefFoundError.java: Likewise.
* java/lang/NoSuchFieldError.java: Likewise.
* java/lang/NoSuchFieldException.java: Likewise.
* java/lang/NoSuchMethodError.java: Likewise.
* java/lang/NoSuchMethodException.java: Likewise.
* java/lang/NullPointerException.java: Likewise.
* java/lang/NumberFormatException.java: Likewise.
* java/lang/OutOfMemoryError.java: Likewise.
* java/lang/Process.java: Likewise.
* java/lang/Runnable.java: Likewise.
* java/lang/RuntimePermission.java: Likewise.
* java/lang/SecurityException.java: Likewise.
* java/lang/Short.java: Likewise.
* java/lang/StackOverflowError.java: Likewise.
* java/lang/StringIndexOutOfBoundsException.java: Likewise.
* java/lang/ThreadDeath.java: Likewise.
* java/lang/ThreadLocal.java: Likewise.
* java/lang/UnknownError.java: Likewise.
* java/lang/UnsatisfiedLinkError.java: Likewise.
* java/lang/UnsupportedClassVersionError.java: Likewise.
* java/lang/UnsupportedOperationException.java: Likewise.
* java/lang/VerifyError.java: Likewise.
* java/lang/VirtualMachineError.java: Likewise.
* java/lang/reflect/InvocationTargetException.java: Likewise.
* java/net/BindException.java: Likewise.
* java/net/ConnectException.java: Likewise.
* java/net/MalformedURLException.java: Likewise.
* java/net/NoRouteToHostException.java: Likewise.
* java/net/ProtocolException.java: Likewise.
* java/net/SocketException.java: Likewise.
* java/net/UnknownHostException.java: Likewise.
* java/net/UnknownServiceException.java: Likewise.
From-SVN: r54656
Diffstat (limited to 'libjava/java/lang/Process.java')
-rw-r--r-- | libjava/java/lang/Process.java | 81 |
1 files changed, 46 insertions, 35 deletions
diff --git a/libjava/java/lang/Process.java b/libjava/java/lang/Process.java index d8c5da5..e5df417 100644 --- a/libjava/java/lang/Process.java +++ b/libjava/java/lang/Process.java @@ -1,5 +1,5 @@ -/* Process.java - Represent spawned system process. - Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. +/* Process.java - Represent spawned system process + Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. - + GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @@ -41,71 +41,83 @@ package java.lang; import java.io.OutputStream; import java.io.InputStream; -/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 - */ - /** * An instance of a subclass of <code>Process</code> is created by the * <code>Runtime.exec</code> methods. Methods in <code>Process</code> - * provide a means to send input to a process, obtain the output from a - * subprocess, destroy a subprocess, obtain the exit value from a + * provide a means to send input to a process, obtain the output from a + * subprocess, destroy a subprocess, obtain the exit value from a * subprocess, and wait for a subprocess to complete. - * - * @since JDK 1.0 - * + * + * <p>This is dependent on the platform, and some processes (like native + * windowing processes, 16-bit processes in Windows, or shell scripts) may + * be limited in functionality. Because some platforms have limited buffers + * between processes, you may need to provide input and read output to prevent + * the process from blocking, or even deadlocking. + * + * <p>Even if all references to this object disapper, the process continues + * to execute to completion. There are no guarantees that the + * subprocess execute asynchronously or concurrently with the process which + * owns this object. + * * @author Brian Jones * @author Tom Tromey <tromey@cygnus.com> + * @see Runtime#exec(String[], String[], File) + * @since 1.0 + * @status updated to 1.4 */ public abstract class Process { /** * Empty constructor does nothing. */ - public Process() { } + public Process() + { + } /** - * Obtain the output stream of the subprocess. It may help to - * associate this stream as the redirected STDIN file descriptor of - * the subprocess. + * Obtain the output stream that sends data to the subprocess. This is + * the STDIN of the subprocess. When implementing, you should probably + * use a buffered stream. + * + * @return the output stream that pipes to the process input */ public abstract OutputStream getOutputStream(); /** - * Obtain the input stream of the subprocess. It may help to - * associate this stream as the redirected STDOUT file descriptor of - * the subprocess. + * Obtain the input stream that receives data from the subprocess. This is + * the STDOUT of the subprocess. When implementing, you should probably + * use a buffered stream. + * + * @return the input stream that pipes data from the process output */ public abstract InputStream getInputStream(); /** - * Obtain the error input stream of the subprocess. It may help to - * associate this stream as the redirected STDERR file descriptor of - * the subprocess. + * Obtain the input stream that receives data from the subprocess. This is + * the STDERR of the subprocess. When implementing, you should probably + * use a buffered stream. + * + * @return the input stream that pipes data from the process error output */ public abstract InputStream getErrorStream(); /** * The thread calling <code>waitFor</code> will block until the subprocess - * has terminated. If the process has already terminated then the method + * has terminated. If the process has already terminated then the method * immediately returns with the exit value of the subprocess. - * - * @returns the exit value of the subprocess. A return of <code>0</code> - * denotes normal process termination by convention. * - * @throws InterruptedException is thrown if another thread interrupts - * the waiting thread. The waiting thread stops waiting. + * @return the subprocess exit value; 0 conventionally denotes success + * @throws InterruptedException if another thread interrups the blocked one */ - public abstract int waitFor() - throws InterruptedException; + public abstract int waitFor() throws InterruptedException; /** * When a process terminates there is associated with that termination - * an exit value for the process to indicate why it terminated. A return + * an exit value for the process to indicate why it terminated. A return * of <code>0</code> denotes normal process termination by convention. * - * @returns the exit value of the subprocess. - * @throws IllegalThreadStateException is thrown if the subprocess - * represented by the subclass of this class has not yet terminated. + * @return the exit value of the subprocess + * @throws IllegalThreadStateException if the subprocess has not terminated */ public abstract int exitValue(); @@ -113,5 +125,4 @@ public abstract class Process * Kills the subprocess and all of its children forcibly. */ public abstract void destroy(); - -} +} // class Process |