On Wed, 1 Oct 2025 17:45:41 GMT, Roger Riggs <[email protected]> wrote:

>> The teardown of a Process launched by `ProcessBuilder` includes the closing 
>> of streams and ensuring the termination of the process is the responsibility 
>> of the caller. The `Process.close()` method provides a clear and obvious way 
>> to ensure all the streams are closed and the process terminated.
>> 
>> The try-with-resources statement is frequently used to open streams and 
>> ensure they are closed on exiting the block. By implementing 
>> `AutoClosable.close()` the completeness of closing the streams and process 
>> termination can be done by try-with-resources.
>> 
>> The actions of the `close()` method are to close each stream and destroy the 
>> process if it has not terminated.
>
> Roger Riggs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Clarify the use of waitFor after close() or T-W-R exit.

src/java.base/share/classes/java/lang/Process.java line 207:

> 205:      * Calling {@linkplain #waitFor() waitFor} after
> 206:      * {@linkplain #close() close} or after the try-with-resources block 
> exits
> 207:      * can verify that the process has been terminated.

"can verify that the process has been terminated". I think this section is a 
bit confusing to read. It puts doubt into the reader's mind that the process 
may not have terminated and call waitFor after close to be sure. It's okay for 
the all powerful destroyForcibly to speak about the possibility that the 
process may not terminate immediately but the "close" method is more user 
facing and users will expect the process to have terminated.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26649#discussion_r2403804363

Reply via email to