On Sun, 6 Nov 2022 23:09:54 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> This change adds an option **EnableWaitForParallelLoad** to enable the 
>> legacy behavior where the VM will manage synchronization for multiple 
>> threads loading the same class using a non-parallel capable class loader 
>> that have released the class loader lock.  The VM will break the class 
>> loader lock for parallel threads trying to load the class, and wait for the 
>> first thread that initiated loading the class to complete.  The subsequent 
>> threads will use the result of the first thread, rather than get a 
>> LinkageError: duplicate class definition for loading the class without 
>> synchronization.
>> Releasing the class loader lock was a common workaround for class loaders 
>> that used a non-hierarchical delegation scheme to avoid deadlock, before 
>> parallel capable class loading was added. 
>> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassLoader.html#registerAsParallelCapable()
>> 
>> Tested with tier1-6 and internal applications.
>
> Coleen Phillimore has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Remove assert no longer valid.

Looks good. Thanks.

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

Marked as reviewed by dholmes (Reviewer).

PR: https://git.openjdk.org/jdk/pull/10832

Reply via email to