< prev index next >
src/hotspot/share/compiler/compileBroker.cpp
Print this page
@@ -1157,11 +1157,11 @@
}
// Don't allow blocking compilation requests if we are in JVMCIRuntime::shutdown
// to avoid deadlock between compiler thread(s) and threads run at shutdown
// such as the DestroyJavaVM thread.
- if (JVMCI::shutdown_called()) {
+ if (JVMCI::in_shutdown()) {
blocking = false;
}
}
#endif // INCLUDE_JVMCI
@@ -2127,21 +2127,27 @@
if (UseJVMCICompiler && comp != NULL && comp->is_jvmci()) {
JVMCICompiler* jvmci = (JVMCICompiler*) comp;
TraceTime t1("compilation", &time);
EventCompilation event;
+ JVMCIRuntime *runtime = NULL;
+ if (JVMCI::in_shutdown()) {
+ failure_reason = "in JVMCI shutdown";
+ retry_message = "not retryable";
+ compilable = ciEnv::MethodCompilable_never;
+ } else if (target_handle->is_old()) {
// Skip redefined methods
- if (target_handle->is_old()) {
failure_reason = "redefined method";
retry_message = "not retryable";
compilable = ciEnv::MethodCompilable_never;
} else {
JVMCICompileState compile_state(task, system_dictionary_modification_counter);
JVMCIEnv env(thread, &compile_state, __FILE__, __LINE__);
methodHandle method(thread, target_handle);
- env.runtime()->compile_method(&env, jvmci, method, osr_bci);
+ runtime = env.runtime();
+ runtime->compile_method(&env, jvmci, method, osr_bci);
failure_reason = compile_state.failure_reason();
failure_reason_on_C_heap = compile_state.failure_reason_on_C_heap();
if (!compile_state.retryable()) {
retry_message = "not retryable";
< prev index next >