src/share/vm/ci/ciEnv.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciEnv.cpp	Mon Nov  4 00:04:41 2013
--- new/src/share/vm/ci/ciEnv.cpp	Mon Nov  4 00:04:41 2013

*** 1018,1030 **** --- 1018,1035 ---- MutexUnlocker ml(Compile_lock); MutexUnlocker locker(MethodCompileQueue_lock); CompileBroker::handle_full_code_cache(); } } else { + // Need to coordinate method registration with the sweeper thread. + nmethodLocker nml(nm); + nm->set_has_unsafe_access(has_unsafe_access); nm->set_has_wide_vectors(has_wide_vectors); + // nmethod could be marked as non-entrant by the sweeper already. + if (nm->is_in_use()) { // Record successful registration. // (Put nm into the task handle *before* publishing to the Java heap.) if (task() != NULL) task()->set_code(nm); if (entry_bci == InvocationEntryBci) {
*** 1038,1048 **** --- 1043,1053 ---- } if (old != NULL ) { old->make_not_entrant(); } } ! if (TraceNMethodInstalls ) { ! if (TraceNMethodInstalls) { ResourceMark rm; char *method_name = method->name_and_sig_as_C_string(); ttyLocker ttyl; tty->print_cr("Installing method (%d) %s ", comp_level,
*** 1059,1077 **** --- 1064,1081 ---- comp_level, method_name, entry_bci); } method->method_holder()->add_osr_nmethod(nm); + } } } } // JVMTI -- compiled method notification (must be done outside lock) if (nm != NULL) { nm->post_compiled_method_load_event(); } } // ------------------------------------------------------------------ // ciEnv::find_system_klass

src/share/vm/ci/ciEnv.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File