Hi,

Unfortunately the switch from Unsafe to VarHandle in LockSupport and 
ThreadLocalRandom caused some circularity issues (similar to those for 
AtomicInteger) that have shown up in continuous testing (but not when i tested 
explicitly using the infrastructure).

The main problem is MethodType leverages ConcurrentHashMap which under certain 
conditions uses TLR [*].

We know we want to replace CHM usage in MethodType with an alternative Peter 
created, which i think we can pursue post 9 and break the circularity.

This patch reverts the back to Unsafe usage:

  
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8173083-vh-to-unsafe-ls-tlr/webrev/index.html

I did not revert the changes to Striped64 and ForkJoinWorkerThread.

Thanks,
Paul.

[*]
1) The clinit of LockSupport creates a VarHandle;

2) a VarHandle creates MethodTypes;

3) that are stored in a CHM;

4) which on occasion uses TLR

5) that uses a VarHandle whose VarForm is being initalized in 1)


Reply via email to