-
Bug
-
Resolution: Fixed
-
P3
-
21, 22
-
b07
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8316377 | 21.0.2 | Robert Mckenna | P3 | Resolved | Fixed | b02 |
DatagramChannel is virtual thread friendly, meaning the underlying carrier thread is released when a virtual thread blocks in receive or read.
DatagramChannel's socket adaptor (used by DatagramSocket) is not currently virtual thread friendly. The original changes proposed to address this in JDK 19 had issues where the underlying temporary direct buffer was being allocated from one carrier, and returned to the buffer cace of a different carrier. It was a performance rather than a correctness issue so we decided to not include this change. This issue needs to re-visited.
DatagramChannel's socket adaptor (used by DatagramSocket) is not currently virtual thread friendly. The original changes proposed to address this in JDK 19 had issues where the underlying temporary direct buffer was being allocated from one carrier, and returned to the buffer cace of a different carrier. It was a performance rather than a correctness issue so we decided to not include this change. This issue needs to re-visited.
- backported by
-
JDK-8316377 (dc) DatagramChannel's socket adaptor does not release carrier thread when blocking in receive
- Resolved
- relates to
-
JDK-8344328 (dc) DatagramChannelImpl.blockingReceive can now synchronize on packet
- Resolved
- links to
-
Commit openjdk/jdk21u/dfc32a08
-
Commit openjdk/jdk/028068a6
-
Review openjdk/jdk21u/167
-
Review openjdk/jdk/14901
(1 links to)