On Wed, 20 Aug 2025 20:16:46 GMT, Roger Riggs <[email protected]> wrote:
>> src/java.base/share/classes/java/lang/Process.java line 652:
>>
>>> 650: */
>>> 651: public void close() throws IOException {
>>> 652: synchronized(this) {
>>
>> Might be safer to create a dedicated, private object to use for locking here
>> instead of `this`. Otherwise there's a possibility of deadlock (or
>> indefinite delay), for example, if a subclass happens to have a
>> `synchronized` method that could block while trying to communicate with the
>> process, etc.
>
> There are other `synchronized(this)` within Process, its cleaner to stay
> consistent and update them later in a separate PR.
That would be an incompatible change as subclasses could no longer define
operations that are atomic with respect to the superclass methods that lock
`this`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26649#discussion_r2289652539