On Wed, 6 Aug 2025 08:18:03 GMT, Volkan Yazici <vyaz...@openjdk.org> wrote:

> Can we simply restore the interrupt after destroy()?

That's the suggestion... but now I'm thinking the correct solution here is to 
just have `close()` declared to throw `InterruptedException` and not catch 
anything. Then we are leaving it up to the caller to decide what to do, rather 
than being forced to make an assumption one way or another.

In practice, there seem to be two typical scenarios when shutting things down 
using methods that block and throw `InterruptedException` (e.g., 
`ExecutorService.html.awaitTermination()`, `Process.waitFor()`, etc.):

Scenario 1: You want to ensure everything is properly and completely shutdown.

In this scenario you ignore `InterruptedException`s until each shutdown step 
fully completes: if any step throws an `InterruptedException`, you make a note 
of it, loop back around and restart that step. You don't return until all steps 
are complete. Just before returning, if you were interrupted at any point, you 
re-interrupt the current thread so the interrupt is not lost. You are 
optimizing for completeness.

Scenario 2: You want to start shutting things down, but if you are interrupted, 
you want to immediately bail out.

As soon as an interrupt occurs, stop trying to shut things down and return. You 
are optimizing for speed.

The problem is that if `Process.close()` isn't declared to throw 
`InterruptedException`, then that makes it impossible to implement scenario 1 
(regardless of whether you re-interrupt the thread) because the caller has no 
way of knowing whether the process actually did terminate. And if you don't 
re-interrupt the thread, you also make it impossible to implement scenario 2.

So in my estimation re-interrupting the thread is better than not 
re-interrupting the thread, but regardless of that, there is still a problem if 
`Process.close()` isn't declared to throw `InterruptedException`.

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

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

Reply via email to