BlockingChannelOps.java and BlockingSocketOps.java test virtual threads doing blocking I/O on channels and java.net sockets.
BlockingChannelOps has 32 tests at this time and takes nearly 120s to run due to several tests that sleep to improve the chances that threads are are blocked. These sleeps can be replaced with a poll of the thread state so the test runs in 3-4s. BlockingSocketOps has be changed to do the same time. In passing, I updated the tests in BlockingSocketOps that bound a ServerSocket address to the wildcard address so they bind to the loopback address instead. This helps reduce potential interference in CI environments. I also put a workaround into BlockingChannelOps for macOS where the kernel appears to increase the amount of bytes that can be buffered in the socket sender buffer, it's otherwise too hard to test that socket writes block on that platform. ------------- Commit messages: - Initial commit Changes: https://git.openjdk.org/jdk/pull/10427/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10427&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8294375 Stats: 602 lines in 2 files changed: 125 ins; 311 del; 166 mod Patch: https://git.openjdk.org/jdk/pull/10427.diff Fetch: git fetch https://git.openjdk.org/jdk pull/10427/head:pull/10427 PR: https://git.openjdk.org/jdk/pull/10427