paul.sandoz at oracle.com
Mon Nov 23 16:38:50 UTC 2015
Please review the addition of Reference.reachabilityFence contributed by Aleksey, Doug and myself:
The implementation approach marks the method Reference.reachabilityFence as not inline-able, thereby “keeping alive” an object passed to the method until at least after the method call.
The testing approach i have taken is to verify that the method does not get inlined either in C1 or C2. The test approach seems fragile (as fragile as the accessor-based test i code-cargo-culted from) but passes ok through JPRT.
I could not find a suitable mechanism in WhiteBox. Is there a more reliable mechanism to determine what methods are inlined into a compiled method?
There is another testing approach in the VarHandles sandbox:
But i am not confident that the test can be run within a reasonable time and reliably on all platforms and VM modes.
More information about the core-libs-dev