On Tue, 20 Dec 2022 14:24:28 GMT, Jaikiran Pai <[email protected]> wrote:
>> Naoto Sato has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Removed JdkConsoleProviderImpl, caching INSTANCE
>
> src/java.base/share/classes/jdk/internal/io/JdkConsoleImpl.java line 336:
>
>> 334: public JdkConsole console(boolean isTTY, Charset charset) {
>> 335: if (isTTY) {
>> 336: if (INSTANCE == null) {
>
> This would need a double checked locking, isn't it? Something like:
>
> if (INSTANCE == null) {
> synchronized (JdkConsoleImpl.class) {
> if (INSTANCE != null) {
> return INSTANCE;
> }
> ...// rest of the current code that's in if block
>
>
> Having said that perhaps the singleton instance isn't needed here and the
> `java.io.Console` deal with the caching?
You are right. `JdkConsoleImpl` is instantiated within the static initializer
of `Console`, there is no need to cache it. `Console.cons` is guaranteed to be
a singleton. Removed tha caching altogther.
-------------
PR: https://git.openjdk.org/jdk/pull/11729