1981 |
1981 |
1982 |
1982 |
1983 // Handles the uncommon case in locking, i.e., contention or an inflated lock. |
1983 // Handles the uncommon case in locking, i.e., contention or an inflated lock. |
1984 JRT_BLOCK_ENTRY(void, SharedRuntime::complete_monitor_locking_C(oopDesc* _obj, BasicLock* lock, JavaThread* thread)) |
1984 JRT_BLOCK_ENTRY(void, SharedRuntime::complete_monitor_locking_C(oopDesc* _obj, BasicLock* lock, JavaThread* thread)) |
1985 // Disable ObjectSynchronizer::quick_enter() in default config |
1985 // Disable ObjectSynchronizer::quick_enter() in default config |
1986 // on AARCH64 until JDK-8153107 is resolved. |
1986 // on AARCH64 and ARM until JDK-8153107 is resolved. |
1987 if (AARCH64_ONLY((SyncFlags & 256) != 0 &&) !SafepointSynchronize::is_synchronizing()) { |
1987 if (ARM_ONLY((SyncFlags & 256) != 0 &&) |
|
1988 AARCH64_ONLY((SyncFlags & 256) != 0 &&) |
|
1989 !SafepointSynchronize::is_synchronizing()) { |
1988 // Only try quick_enter() if we're not trying to reach a safepoint |
1990 // Only try quick_enter() if we're not trying to reach a safepoint |
1989 // so that the calling thread reaches the safepoint more quickly. |
1991 // so that the calling thread reaches the safepoint more quickly. |
1990 if (ObjectSynchronizer::quick_enter(_obj, thread, lock)) return; |
1992 if (ObjectSynchronizer::quick_enter(_obj, thread, lock)) return; |
1991 } |
1993 } |
1992 // NO_ASYNC required because an async exception on the state transition destructor |
1994 // NO_ASYNC required because an async exception on the state transition destructor |