RFR: 8340830: Console.readLine() and Console.printf() are mutually blocking [v5]

Jaikiran Pai jpai at openjdk.org
Tue Feb 3 10:50:43 UTC 2026


On Mon, 2 Feb 2026 22:05:03 GMT, Naoto Sato <naoto at openjdk.org> wrote:

>> Fixing an issue in Console where write is blocked if other thread is waiting to read, which is caused by unnecessary read/write locks. Removing those would solve the problem, as the read/write synchronization is performed at the StreamEn/Decoder level. One unrelated change is to refactor double-checked locking with LazyConstant.
>
> Naoto Sato has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Added @requires condition

test/jdk/java/io/Console/readWriteBlocking.exp line 27:

> 25: eval spawn $argv
> 26: 
> 27: expect {

More of a question than a review, given what this regression test is for - detecting a deadlock in `Console` API implementation, is the use of `expect` tool necessary for this test? Or could the test just ensure that the launched `java` application completes normally after the two threads read/write using the `Console` instance?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29493#discussion_r2758454581


More information about the core-libs-dev mailing list