< prev index next >

src/hotspot/share/jvmci/jvmciRuntime.cpp

Print this page

        

*** 392,412 **** if (PrintBiasedLockingStatistics) { Atomic::inc(BiasedLocking::slow_path_entry_count_addr()); } Handle h_obj(thread, obj); assert(oopDesc::is_oop(h_obj()), "must be NULL or an object"); ! if (UseBiasedLocking) { ! // Retry fast entry if bias is revoked to avoid unnecessary inflation ! ObjectSynchronizer::fast_enter(h_obj, lock, true, CHECK); ! } else { ! if (JVMCIUseFastLocking) { ! // When using fast locking, the compiled code has already tried the fast case ! ObjectSynchronizer::slow_enter(h_obj, lock, THREAD); ! } else { ! ObjectSynchronizer::fast_enter(h_obj, lock, false, THREAD); ! } ! } TRACE_jvmci_3("%s: exiting locking slow with obj=" INTPTR_FORMAT, thread->name(), p2i(obj)); JRT_END JRT_LEAF(void, JVMCIRuntime::monitorexit(JavaThread* thread, oopDesc* obj, BasicLock* lock)) assert(thread == JavaThread::current(), "threads must correspond"); --- 392,402 ---- if (PrintBiasedLockingStatistics) { Atomic::inc(BiasedLocking::slow_path_entry_count_addr()); } Handle h_obj(thread, obj); assert(oopDesc::is_oop(h_obj()), "must be NULL or an object"); ! ObjectSynchronizer::enter(h_obj, lock, THREAD); TRACE_jvmci_3("%s: exiting locking slow with obj=" INTPTR_FORMAT, thread->name(), p2i(obj)); JRT_END JRT_LEAF(void, JVMCIRuntime::monitorexit(JavaThread* thread, oopDesc* obj, BasicLock* lock)) assert(thread == JavaThread::current(), "threads must correspond");
*** 424,439 **** thread->print_stack_on(tty); assert(false, "invalid lock object pointer dected"); } #endif ! if (JVMCIUseFastLocking) { ! // When using fast locking, the compiled code has already tried the fast case ! ObjectSynchronizer::slow_exit(obj, lock, THREAD); ! } else { ! ObjectSynchronizer::fast_exit(obj, lock, THREAD); ! } IF_TRACE_jvmci_3 { char type[O_BUFLEN]; obj->klass()->name()->as_C_string(type, O_BUFLEN); TRACE_jvmci_3("%s: exited locking slow case with obj=" INTPTR_FORMAT ", type=%s, mark=" INTPTR_FORMAT ", lock=" INTPTR_FORMAT, thread->name(), p2i(obj), type, obj->mark().value(), p2i(lock)); tty->flush(); --- 414,424 ---- thread->print_stack_on(tty); assert(false, "invalid lock object pointer dected"); } #endif ! ObjectSynchronizer::exit(obj, lock, THREAD); IF_TRACE_jvmci_3 { char type[O_BUFLEN]; obj->klass()->name()->as_C_string(type, O_BUFLEN); TRACE_jvmci_3("%s: exited locking slow case with obj=" INTPTR_FORMAT ", type=%s, mark=" INTPTR_FORMAT ", lock=" INTPTR_FORMAT, thread->name(), p2i(obj), type, obj->mark().value(), p2i(lock)); tty->flush();
< prev index next >