On Fri, 10 Jan 2025 13:32:39 GMT, Alan Bateman <al...@openjdk.org> wrote:

> The thread-per-task-executor returned by 
> Executors.newVirtualThreadPerTaskExecutor will terminate without waiting for 
> threads that are still executing cancelled tasks. This is different to 
> ThreadPoolExecutor and ForkJoinPool that wait for the threads to finish 
> executing the cancelled tasks. Note that issue with TPTE is specific to 
> Callable tasks, Runnable tasks are not impacted. The change is to override 
> FutureTask.run instead of FutureTask.done. Test coverage is expanded to cover 
> this case.

test/jdk/java/util/concurrent/ThreadPerTaskExecutor/ThreadPerTaskExecutorTest.java
 line 306:

> 304:             stop.await();
> 305:             return null;
> 306:         });

One (additional?) option would be to obtain a reference to the returned Future 
from submit and assert that the Future isn't done after shutdown() returns.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23036#discussion_r1910436867

Reply via email to