RFR: Ensure vthread has connected to server

Alan Bateman alanb at openjdk.java.net
Mon Sep 6 11:17:10 UTC 2021


On Mon, 6 Sep 2021 10:59:56 GMT, Miao Zheng <github.com+20216587+miao-zheng at openjdk.org> wrote:

>> test/jdk/java/lang/Thread/virtual/InterruptHttp.java line 60:
>> 
>>> 58:             while (thread.getState() != Thread.State.WAITING) {
>>> 59:                 Thread.sleep(1000);
>>> 60:             }
>> 
>> Thanks for this. You are right that that the test is problematic. Can you try the following instead of polling the thread state? This will wait until a connection is established so that the read is interrupted.
>> 
>> 
>> while (server.connectionCount() == 0) {
>>     Thread.sleep(100);
>> }
>
> Thanks for your review.
> Do I need remove this? I think the following is duplicated with the check of "server.connectionCount() == 0"
> 
>     // server should have accepted one connection
>     if (server.connectionCount() != 1)
>         throw new RuntimeException("Expected 1 HTTP connection");

We should keep it to checks that only one connection is established. The details on this are in sun.net.www.http.HttpClient where it makes a decision on whether to retry the HTTP request when interrupted. In this case, it should not retry.

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

PR: https://git.openjdk.java.net/loom/pull/60


More information about the loom-dev mailing list