Ok, more progress: cancellation works, and the change seems to be backward compatible. In other words, existing tests pass, and JMeter is usable with new async mode.
A "fun" story: it turned out "os process sampler machinery" was throwing new InterruptedExeption in case "timeout reached". Then the interrupted exception was caught and converted to the true thread.interrupt(), and it killed the coroutine. It resulted in :src:dist-check:batchOS_TESTS failure. Here's the commit that removes the use of new InterruptedException: https://github.com/apache/jmeter/pull/540/commits/97f27af4c3c5fd9094c9ff330a88a2e3c925cf73 It might be time to add async HTTP client implementation. Any thoughts? I think behind the lines of: a) Java 11 HTTP client b) Jetty HTTP client c) Apache HttpAsyncClient Vladimir
