On Sun, 21 May 2023 13:52:06 GMT, Alan Bateman <al...@openjdk.org> wrote:

> This is a test only change to the unit test for the ExecutorService returned 
> by Executors.newThreadPerTaskExecutor. The tests for interrupting invokeAll 
> assume the threads started to execute the tasks do actually execute the task 
> code. The refresh in JEP 444 changed the implementation to use FutureTask, 
> and FutureTask checks the interrupt status before it executes the task code. 
> So some intermittent timeouts of the tests for interrupting invokeAll as 
> those tests were waiting for the task to complete.
> 
> The main change is that the tests for interrupting invokeAll are changed to 
> interrupt when the main thread blocks in invokeAll. They are also changed to 
> check if the task started or not. The tests for interrupting invokeAny 
> already did this, but these are changed to use the same infrastructure to 
> avoid having two styles of tests in the same source file.

The change now waits for the current thread to reach a particular code location 
before interrupting the thread and then also verifies that the submitted task 
was indeed started, before checking that it is done. This I believe should 
solve the intermittent failures observed in this test.

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

Marked as reviewed by jpai (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/14072#pullrequestreview-1436322155

Reply via email to