Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @ 517:e9be0e04635a
6689653: JMapPerm fails with UseConcMarkSweepIncGC and compressed oops off
Summary: Added safe_object_iterate() for use by JMapPerm.
Reviewed-by: tonyp
author | jmasa |
---|---|
date | Tue, 06 Jan 2009 07:05:05 -0800 |
parents | 27a80744a83b |
children | 0af8b0718fc9 |
comparison
equal
deleted
inserted
replaced
500:ca7d48236048 | 517:e9be0e04635a |
---|---|
3012 if (freelistLock()->owned_by_self()) { | 3012 if (freelistLock()->owned_by_self()) { |
3013 Generation::object_iterate(cl); | 3013 Generation::object_iterate(cl); |
3014 } else { | 3014 } else { |
3015 MutexLockerEx x(freelistLock(), Mutex::_no_safepoint_check_flag); | 3015 MutexLockerEx x(freelistLock(), Mutex::_no_safepoint_check_flag); |
3016 Generation::object_iterate(cl); | 3016 Generation::object_iterate(cl); |
3017 } | |
3018 } | |
3019 | |
3020 void | |
3021 ConcurrentMarkSweepGeneration::safe_object_iterate(ObjectClosure* cl) { | |
3022 if (freelistLock()->owned_by_self()) { | |
3023 Generation::safe_object_iterate(cl); | |
3024 } else { | |
3025 MutexLockerEx x(freelistLock(), Mutex::_no_safepoint_check_flag); | |
3026 Generation::safe_object_iterate(cl); | |
3017 } | 3027 } |
3018 } | 3028 } |
3019 | 3029 |
3020 void | 3030 void |
3021 ConcurrentMarkSweepGeneration::pre_adjust_pointers() { | 3031 ConcurrentMarkSweepGeneration::pre_adjust_pointers() { |
6999 // future by detecting that condition and clearing fewer | 7009 // future by detecting that condition and clearing fewer |
7000 // MUT/CT entries. | 7010 // MUT/CT entries. |
7001 _mut->clear_range(mr); | 7011 _mut->clear_range(mr); |
7002 } | 7012 } |
7003 DEBUG_ONLY(}) | 7013 DEBUG_ONLY(}) |
7004 | |
7005 // Note: the finger doesn't advance while we drain | 7014 // Note: the finger doesn't advance while we drain |
7006 // the stack below. | 7015 // the stack below. |
7007 PushOrMarkClosure pushOrMarkClosure(_collector, | 7016 PushOrMarkClosure pushOrMarkClosure(_collector, |
7008 _span, _bitMap, _markStack, | 7017 _span, _bitMap, _markStack, |
7009 _revisitStack, | 7018 _revisitStack, |