RFR: 8374170: I/O Poller updates

Michael McMahon michaelm at openjdk.org
Thu Feb 5 13:08:22 UTC 2026


On Tue, 13 Jan 2026 15:29:10 GMT, Alan Bateman <alanb at openjdk.org> wrote:

> The I/O Poller used to support virtual threads doing blocking networking I/O has been significantly refactored in the loom repo. There are several improvements that should be brought to main line:
> 
> 1. New poller mode that uses a read poller per carrier, this is beneficial in some workloads.
> 2. Better cleanup/recovery in the event if a file descriptor or memory can't be allocated during initializatio.
> 3. NativeThread changed to cache native thread ID and avoid JNI call to current0 for each blocking I/O op.
> 
> The changes have been in the loom repo for a long time, this is why the copyright header is updated to 2025 (not 2026) in some cases.
> 
> Testing: tier1 + tier2.

src/java.base/share/classes/sun/nio/ch/NativeDispatcher.java line 88:

> 86:         }
> 87:         // dup2 and signal platform threads
> 88:         implPreClose(fd, reader, writer);

Can you explain why implPreClose() is called here always, where previously it was only called when reader or writer were platform threads?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29195#discussion_r2769061417


More information about the net-dev mailing list