On Tue, 20 Dec 2022 14:24:28 GMT, Jaikiran Pai <j...@openjdk.org> 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

Reply via email to