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

@ -1252,7 +1252,7 @@ bool nmethod::make_not_entrant_or_zombie(unsigned int state) {
if (method() != NULL && (method()->code() == this ||
method()->from_compiled_entry() == verified_entry_point())) {
HandleMark hm;
method()->clear_code();
method()->clear_code(false /* already owns Patching_lock */);
}
} // leave critical region under Patching_lock