8153134: Infinite loop in handle_wrong_method in jmod

Use Patching_lock to synchronize access between set_code() and clear_code().

Reviewed-by: kvn, dlong
This commit is contained in:
Tobias Hartmann 2016-10-18 09:43:12 +02:00
parent 614320ba5e
commit 4bb6761600
4 changed files with 6 additions and 7 deletions

View file

@ -2041,7 +2041,6 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
if (nm != NULL && !m->is_method_handle_intrinsic()) {
// Throw out the code so that the code cache doesn't fill up
nm->make_not_entrant();
m->clear_code();
}
CompileBroker::compile_method(m, InvocationEntryBci, CompLevel_full_optimization,
methodHandle(), 0, CompileTask::Reason_CTW, THREAD);
@ -2060,7 +2059,6 @@ void ClassLoader::compile_the_world_in(char* name, Handle loader, TRAPS) {
if (nm != NULL && !m->is_method_handle_intrinsic()) {
// Throw out the code so that the code cache doesn't fill up
nm->make_not_entrant();
m->clear_code();
}
}
}