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

Naoto Sato naoto at openjdk.org
Tue Feb 3 17:36:16 UTC 2026


> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains nine additional commits since the last revision:

 - Reflects Jai's review comments
 - Merge branch 'master' into JDK-8340830-Console-readLine-printf-mutually-blocking
 - Added @requires condition
 - added jline test run
 - Merge branch 'master' into JDK-8340830-Console-readLine-printf-mutually-blocking
 - Fixed indentation
 - Made ProxyingConsole value-based, used anonymous class for LazyConstant
 - Refine exceptions
 - initial commit

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29493/files
  - new: https://git.openjdk.org/jdk/pull/29493/files/4c065425..7edf566e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29493&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29493&range=04-05

  Stats: 15055 lines in 186 files changed: 5176 ins; 3137 del; 6742 mod
  Patch: https://git.openjdk.org/jdk/pull/29493.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29493/head:pull/29493

PR: https://git.openjdk.org/jdk/pull/29493


More information about the core-libs-dev mailing list