ClassNotFoundException for Custom Scheduler Prototype v2

Alan Bateman alan.bateman at oracle.com
Fri Feb 27 06:57:07 UTC 2026



On 27/02/2026 06:04, Mengyang Li wrote:
>
> Hi Alan,
>
> Thanks for the quick reply. I’ll continue investigating the custom 
> scheduler and sun.nio.ch.Poller related code.
>
> I also checked the Loom repo’s io_uring branch and noticed a 
> difference when io_uring poller is enabled:
>
>  *
>
>     SocketChannelImplstill does park(Net.POLLIN)then IOUtil.read(...)
>
>  *
>
>     NioSocketImpl (for virtual threads) does:
>
> ``` java
> if (Poller.supportReadOps() && Thread.currentThread().isVirtual()) {
>     n = Poller.read(fdVal(fd), b, off, len, remainingNanos, this::isOpen);
>     if (n != IOStatus.UNAVAILABLE) return n;
> }
> ```
>
> Why isn’t SocketChannelImpl using a similar Poller.read(...) VT path? 
> Is this intentional, or just not wired up yet in that branch?
>
This is a lot of work required on memory management before the 
read/write ops can efficiently make use of this. This is why the comment 
in the NioSocketImpl code says "experimental".

-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/loom-dev/attachments/20260227/b6807675/attachment.htm>


More information about the loom-dev mailing list