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 Wed Nov 6 18:35:33 2013
--- new/src/share/vm/ci/ciEnv.cpp Wed Nov 6 18:35:33 2013
*** 933,943 ****
--- 933,945 ----
// To prevent compile queue updates.
MutexLocker locker(MethodCompileQueue_lock, THREAD);
// Prevent SystemDictionary::add_to_hierarchy from running
// and invalidating our dependencies until we install this method.
+ // No safepoints are allowed. Otherwise, class redefinition can occur in between.
MutexLocker ml(Compile_lock);
+ No_Safepoint_Verifier nsv;
// Change in Jvmti state may invalidate compilation.
if (!failing() &&
( (!jvmti_can_hotswap_or_post_breakpoint() &&
JvmtiExport::can_hotswap_or_post_breakpoint()) ||
*** 999,1018 ****
--- 1001,1010 ----
compiler, comp_level);
// Free codeBlobs
code_buffer->free_blob();
// stress test 6243940 by immediately making the method
// non-entrant behind the system's back. This has serious
// side effects on the code cache and is not meant for
// general stress testing
if (nm != NULL && StressNonEntrant) {
MutexLockerEx pl(Patching_lock, Mutex::_no_safepoint_check_flag);
NativeJump::patch_verified_entry(nm->entry_point(), nm->verified_entry_point(),
SharedRuntime::get_handle_wrong_method_stub());
}
if (nm == NULL) {
// The CodeCache is full. Print out warning and disable compilation.
record_failure("code cache is full");
{
MutexUnlocker ml(Compile_lock);
src/share/vm/ci/ciEnv.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File