equal
deleted
inserted
replaced
960 } |
960 } |
961 |
961 |
962 if (nm == NULL) { |
962 if (nm == NULL) { |
963 // The CodeCache is full. Print out warning and disable compilation. |
963 // The CodeCache is full. Print out warning and disable compilation. |
964 record_failure("code cache is full"); |
964 record_failure("code cache is full"); |
965 UseInterpreter = true; |
965 { |
966 if (UseCompiler || AlwaysCompileLoopMethods ) { |
966 MutexUnlocker ml(Compile_lock); |
967 #ifndef PRODUCT |
967 MutexUnlocker locker(MethodCompileQueue_lock); |
968 warning("CodeCache is full. Compiler has been disabled"); |
968 CompileBroker::handle_full_code_cache(); |
969 if (CompileTheWorld || ExitOnFullCodeCache) { |
|
970 before_exit(JavaThread::current()); |
|
971 exit_globals(); // will delete tty |
|
972 vm_direct_exit(CompileTheWorld ? 0 : 1); |
|
973 } |
|
974 #endif |
|
975 UseCompiler = false; |
|
976 AlwaysCompileLoopMethods = false; |
|
977 } |
969 } |
978 } else { |
970 } else { |
979 NOT_PRODUCT(nm->set_has_debug_info(has_debug_info); ) |
971 NOT_PRODUCT(nm->set_has_debug_info(has_debug_info); ) |
980 nm->set_has_unsafe_access(has_unsafe_access); |
972 nm->set_has_unsafe_access(has_unsafe_access); |
981 |
973 |