mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8013945: CMS fatal error: must own lock MemberNameTable_lock
The "delete mnt" needs to grab MemberNameTable_lock if !SafepointSynchronize::is_at_safepoint() Reviewed-by: sla, mgerdin, dholmes, jmasa
This commit is contained in:
parent
85761dd2b8
commit
fb0022c7b1
1 changed files with 9 additions and 4 deletions
|
@ -2320,10 +2320,15 @@ void InstanceKlass::release_C_heap_structures() {
|
||||||
FreeHeap(jmeths);
|
FreeHeap(jmeths);
|
||||||
}
|
}
|
||||||
|
|
||||||
MemberNameTable* mnt = member_names();
|
// Deallocate MemberNameTable
|
||||||
if (mnt != NULL) {
|
{
|
||||||
delete mnt;
|
Mutex* lock_or_null = SafepointSynchronize::is_at_safepoint() ? NULL : MemberNameTable_lock;
|
||||||
set_member_names(NULL);
|
MutexLockerEx ml(lock_or_null, Mutex::_no_safepoint_check_flag);
|
||||||
|
MemberNameTable* mnt = member_names();
|
||||||
|
if (mnt != NULL) {
|
||||||
|
delete mnt;
|
||||||
|
set_member_names(NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int* indices = methods_cached_itable_indices_acquire();
|
int* indices = methods_cached_itable_indices_acquire();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue