Mercurial > hg > truffle
comparison src/share/vm/classfile/metadataOnStackMark.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 | 0b9ea9a72436 |
children | b12a2a9b05ca |
comparison
equal
deleted
inserted
replaced
20277:882004b9e7e1 | 20278:2c6ef90f030a |
---|---|
45 assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); | 45 assert(SafepointSynchronize::is_at_safepoint(), "sanity check"); |
46 NOT_PRODUCT(_is_active = true;) | 46 NOT_PRODUCT(_is_active = true;) |
47 if (_marked_objects == NULL) { | 47 if (_marked_objects == NULL) { |
48 _marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true); | 48 _marked_objects = new (ResourceObj::C_HEAP, mtClass) GrowableArray<Metadata*>(1000, true); |
49 } | 49 } |
50 | |
50 Threads::metadata_do(Metadata::mark_on_stack); | 51 Threads::metadata_do(Metadata::mark_on_stack); |
51 CodeCache::alive_nmethods_do(nmethod::mark_on_stack); | 52 if (JvmtiExport::has_redefined_a_class()) { |
53 CodeCache::alive_nmethods_do(nmethod::mark_on_stack); | |
54 } | |
52 CompileBroker::mark_on_stack(); | 55 CompileBroker::mark_on_stack(); |
53 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); | 56 JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack); |
54 ThreadService::metadata_do(Metadata::mark_on_stack); | 57 ThreadService::metadata_do(Metadata::mark_on_stack); |
55 } | 58 } |
56 | 59 |