RFR: 8308745: ObjArrayKlass::allocate_objArray_klass may call into java while holding a lock [v3]

Coleen Phillimore coleenp at openjdk.org
Thu Mar 7 13:21:10 UTC 2024


On Thu, 7 Mar 2024 01:31:09 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Semaphore seems simpler/cleaner and ready to use.
>
> It's such a rare race and unusual condition that we could execute more Java code, that I started out with just a shared bit.  Then David suggested a semaphore that obeys the safepoint protocol, which seems a lot better.  I've literally skimmed over OSThreadWaitState.  It looks like Semaphore::wait_with_a_safepoint_check() uses it.  I still don't know why it exists:
> 
> 
> // Note: the ThreadState is legacy code and is not correctly implemented.
> // Uses of ThreadState need to be replaced by the state in the JavaThread.
> 
> enum ThreadState {
> 
> 
> Does a PlatformMutex handle priority-inheritance? It still feels like it would be overkill for this usage.  I hope this RecursiveLocker does not become more widely used, where we would have to replace the simple implementation with something more difficult.  We should discourage further use when possible.

Thanks for your last comment because I was worried there's a lot of other code I should know about.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17739#discussion_r1516129405


More information about the serviceability-dev mailing list