RFR: 8332084: Ensure JdkConsoleImpl.restoreEcho visibility in a shutdown hook [v4]

Naoto Sato naoto at openjdk.org
Tue May 14 18:34:06 UTC 2024


On Mon, 13 May 2024 21:32:18 GMT, Naoto Sato <naoto at openjdk.org> wrote:

>> Making sure `restoreEcho` correctly reflects the state in the shutdown thread, which differs from the application's thread that issues the `readPassword()` method.
>
> Naoto Sato has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Addresses a review comment

Thanks, Stuart.
The shutdown hook in question is in the `java.base`'s JdkConsole implementation, so the save/restore responsibility is already pushed down to each provider. Thinking that `java.base`'s implementation is now non-default, and the possibility of the race condition is quite low, I now think making `restoreEcho` as volatile (the current PR) is the most practical solution, unless we could find a reasonably simple way to resolve the contention.
BTW, the `java.base`'s shutdown hook has the special slot `0`, which is guaranteed to be called first: https://github.com/openjdk/jdk/blob/e91492ab4333c61f39b50eb428fa932131a5b908/src/java.base/share/classes/java/lang/Shutdown.java#L47

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

PR Comment: https://git.openjdk.org/jdk/pull/19184#issuecomment-2110862963


More information about the core-libs-dev mailing list