...
Carsten also submitted a JEP back in the JDK10 timeframetime frame:
JDK-8183909 Concurrent Monitor Deflation
...
- ObjectSynchronizer::inflate() has to be careful how omAlloc() is called. If the inflation cause is inflate_cause_vm_internal, then it is not safe to deflate monitors on the per-thread lists so we skip that. When monitor deflation is done, inflate() has to do the oop refresh dance that is common to any code that can goto go to a safepoint while holding a naked oop. And, no you can't use a Handle here either. :-)
 - Everything else is just monitor list management, infrastructure, logging, debugging and the like. :-)
 
...