comparison src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @ 20278:2c6ef90f030a

8049421: G1 Class Unloading after completing a concurrent mark cycle Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov Contributed-by: stefan.karlsson@oracle.com, mikael.gerdin@oracle.com
author stefank
date Mon, 07 Jul 2014 10:12:40 +0200
parents 828056cf311f
children a3953c777565
comparison
equal deleted inserted replaced
20277:882004b9e7e1 20278:2c6ef90f030a
927 _code_roots.add(nm); 927 _code_roots.add(nm);
928 } 928 }
929 929
930 void HeapRegionRemSet::remove_strong_code_root(nmethod* nm) { 930 void HeapRegionRemSet::remove_strong_code_root(nmethod* nm) {
931 assert(nm != NULL, "sanity"); 931 assert(nm != NULL, "sanity");
932 _code_roots.remove(nm); 932 assert_locked_or_safepoint(CodeCache_lock);
933
934 _code_roots.remove_lock_free(nm);
935
933 // Check that there were no duplicates 936 // Check that there were no duplicates
934 guarantee(!_code_roots.contains(nm), "duplicate entry found"); 937 guarantee(!_code_roots.contains(nm), "duplicate entry found");
935 } 938 }
936 939
937 class NMethodMigrationOopClosure : public OopClosure { 940 class NMethodMigrationOopClosure : public OopClosure {