Potential lost write IO notifications in Windows when using virtual threads

robert engels robaho at me.com
Wed Feb 11 20:50:28 UTC 2026


I must be misunderstanding the bug because this section although it is using distinct poll descriptors (for read and write), it is also having multiple threads register for events at the same time - which seems racy to me.

“ Each epoll handle has a dedicated thread that runs epoll_wait in a loop, and schedules tasks to run in other threads in response to polled events.
Other threads register interest ops with EPOLL_CTL_ADD, and when the event is polled, deregister interest with EPOLL_CTL_DEL. Any given socket handle can be registered at most once with each of the above epoll handles, once for reading, once for writing.”


> On Feb 11, 2026, at 1:15 PM, Alan Bateman <alan.bateman at oracle.com> wrote:
> 
> On 11/02/2026 18:52, robert engels wrote:
>> But the bug you linked as a potential candidate uses epoll directly. I only linked it because it discusses what sounds to be similar race results in starvation conditions.
> The issue that I think Matthew may be hitting arises when a Windows SOCKET that is registered for different I/O events with 2 AFD instances (think registered with a Read-Poller and Write-Poller at the same time). So very different to sharing epfd across threads or the edge triggered mode that the article is about.
> 
> -Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/loom-dev/attachments/20260211/ec583027/attachment-0001.htm>


More information about the loom-dev mailing list