Mercurial > hg > truffle
comparison src/share/vm/memory/referenceProcessor.cpp @ 1190:4788266644c1
6895236: CMS: cmsOopClosures.inline.hpp:43 assert(..., "Should remember klasses in this context")
Summary: Adjust assertion checking for ExplicitGCInvokesConcurrentAndUnloadsClasses as a reason for class unloading
Reviewed-by: ysr
author | jmasa |
---|---|
date | Thu, 21 Jan 2010 11:33:32 -0800 |
parents | 9b9c1ee9b3f6 |
children | c18cbe5936b8 |
comparison
equal
deleted
inserted
replaced
1170:c4d722788ed6 | 1190:4788266644c1 |
---|---|
1225 // in any order and, indeed, concurrently. | 1225 // in any order and, indeed, concurrently. |
1226 void ReferenceProcessor::preclean_discovered_references( | 1226 void ReferenceProcessor::preclean_discovered_references( |
1227 BoolObjectClosure* is_alive, | 1227 BoolObjectClosure* is_alive, |
1228 OopClosure* keep_alive, | 1228 OopClosure* keep_alive, |
1229 VoidClosure* complete_gc, | 1229 VoidClosure* complete_gc, |
1230 YieldClosure* yield) { | 1230 YieldClosure* yield, |
1231 bool should_unload_classes) { | |
1231 | 1232 |
1232 NOT_PRODUCT(verify_ok_to_handle_reflists()); | 1233 NOT_PRODUCT(verify_ok_to_handle_reflists()); |
1233 | 1234 |
1234 #ifdef ASSERT | 1235 #ifdef ASSERT |
1235 bool must_remember_klasses = ClassUnloading && !UseConcMarkSweepGC || | 1236 bool must_remember_klasses = ClassUnloading && !UseConcMarkSweepGC || |
1236 CMSClassUnloadingEnabled && UseConcMarkSweepGC; | 1237 CMSClassUnloadingEnabled && UseConcMarkSweepGC || |
1238 ExplicitGCInvokesConcurrentAndUnloadsClasses && | |
1239 UseConcMarkSweepGC && should_unload_classes; | |
1237 RememberKlassesChecker mx(must_remember_klasses); | 1240 RememberKlassesChecker mx(must_remember_klasses); |
1238 #endif | 1241 #endif |
1239 // Soft references | 1242 // Soft references |
1240 { | 1243 { |
1241 TraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, | 1244 TraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, |