Hi Serguei,

You can avoid the code duplication if you use the safepoint check to assign either the MemberNameTable_lock or NULL to a Mutex variable:

Mutex* lock = (atsafepoint ? NULL : MemberNameTable_lock);
{
   MutexLockerEx ml(lock, ...);
   ...
}

David

On 24/05/2013 7:29 PM, serguei.spit...@oracle.com wrote:
Please, review the fix for:
   bug: http://bugs.sun.com/view_bug.do?bug_id=8013945
   jbs: https://jbs.oracle.com/bugs/browse/JDK-8013945

Open webrev:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2013/hotspot/8013945-JVMTI-JSR292.1/


Summary:
   CMS calls InstanceKlass::release_C_heap_structures() concurrently.
   The "delete mnt" needs to take MemberNameTable_lock if
!SafepointSynchronize::is_at_safepoint().

Testing:
   The vm/mlvm and Nashorn tests, the tests listed in the bug report

Thanks,
Serguei

Reply via email to