On Wed, 11 Oct 2023 13:07:08 GMT, Doug Lea <d...@openjdk.org> wrote:

>> Addresses Jdk 8288899 : java/util/concurrent/ExecutorService/CloseTest.java 
>> failed with "InterruptedException: sleep interrupted" and related issues.
>> 
>> This is a major ForkJoin update (and hard to review -- sorry) that finally 
>> addresses incompatibilities between ExecutorService and ForkJoinPool (which 
>> claims to implement it), with the goal of avoiding continuing bug reports 
>> and incompatibilities. Doing this required reworking internal control to use 
>> phaser/seqlock-style versioning schemes (affecting nearly every method) that 
>> ensure consistent data structures and actions without requiring global 
>> synchronization or locking on every task execution that would massively 
>> degrade performance. The previous lack of a solution to this was the main 
>> reason for these incompatibilities.
>
> Doug Lea has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   More cleanup

This is a large update to fix a really hard problem. I've been testing and 
running with these changes on and off for several months and they are stable 
now. The code is very dense and hard to read but the description at a top is 
very good/helpful.

The API changes are okay.  The source compatibility issue with dropping the 
override of the invokeAll combinator is unfortunate but combined with 
everything else it means that FJP now implements the ES contract and can work 
as a replacement for say TPE.

So I think this changes are good to go.

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

Marked as reviewed by alanb (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/14301#pullrequestreview-1673674131

Reply via email to