6988439: Parallel Class Loading test deadlock involving MethodData_lock and Pending List Lock

Don't acquire methodData_lock while holding pending list lock

Reviewed-by: kvn, never, ysr
This commit is contained in:
Coleen Phillimore 2010-12-10 12:13:03 -05:00
parent 83c72a434a
commit aa521ed9cd
3 changed files with 12 additions and 0 deletions

View file

@ -457,6 +457,11 @@ void instanceRefKlass::oop_verify_on(oop obj, outputStream* st) {
}
}
bool instanceRefKlass::owns_pending_list_lock(JavaThread* thread) {
Handle h_lock(thread, java_lang_ref_Reference::pending_list_lock());
return ObjectSynchronizer::current_thread_holds_lock(thread, h_lock);
}
void instanceRefKlass::acquire_pending_list_lock(BasicLock *pending_list_basic_lock) {
// we may enter this with pending exception set
PRESERVE_EXCEPTION_MARK; // exceptions are never thrown, needed for TRAPS argument