< prev index next >

src/hotspot/share/aot/aotCodeHeap.cpp

Print this page
rev 56251 : imported patch 8226705-v1
rev 56252 : imported patch 8226705-v2

*** 36,45 **** --- 36,46 ---- #include "jvmci/jvmciRuntime.hpp" #include "memory/allocation.inline.hpp" #include "memory/universe.hpp" #include "oops/compressedOops.hpp" #include "oops/method.inline.hpp" + #include "runtime/deoptimization.hpp" #include "runtime/handles.inline.hpp" #include "runtime/os.hpp" #include "runtime/safepointVerifiers.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/vmOperations.hpp"
*** 349,359 **** --- 350,363 ---- } else { // success // Publish method #ifdef TIERED mh->set_aot_code(aot); #endif + { + MutexLocker pl(CompiledMethod_lock, Mutex::_no_safepoint_check_flag); Method::set_code(mh, aot); + } if (PrintAOT || (PrintCompilation && PrintAOT)) { PauseNoSafepointVerifier pnsv(&nsv); // aot code is registered already aot->print_on(tty, NULL); } // Publish oop only after we are visible to CompiledMethodIterator
*** 729,740 **** } } } } if (marked > 0) { ! VM_Deoptimize op; ! VMThread::execute(&op); } } void AOTCodeHeap::sweep_dependent_methods(AOTKlassData* klass_data) { // Make dependent methods non_entrant forever. --- 733,743 ---- } } } } if (marked > 0) { ! Deoptimization::deoptimize_all_marked(); } } void AOTCodeHeap::sweep_dependent_methods(AOTKlassData* klass_data) { // Make dependent methods non_entrant forever.
< prev index next >