comparison src/share/vm/gc_interface/collectedHeap.hpp @ 542:9a25e0c45327

6792421: assert(_bitMap->isMarked(addr+size-1),inconsistent Printezis mark) Summary: The CMS concurrent precleaning and concurrent marking phases should work around classes that are undergoing redefinition. Reviewed-by: ysr, tonyp
author jmasa
date Sat, 31 Jan 2009 00:15:00 -0800
parents e9be0e04635a
children 0fbdb4381b99 c6c601a0f2d6
comparison
equal deleted inserted replaced
541:23673011938d 542:9a25e0c45327
40 // ParallelScavengeHeap 40 // ParallelScavengeHeap
41 // 41 //
42 class CollectedHeap : public CHeapObj { 42 class CollectedHeap : public CHeapObj {
43 friend class VMStructs; 43 friend class VMStructs;
44 friend class IsGCActiveMark; // Block structured external access to _is_gc_active 44 friend class IsGCActiveMark; // Block structured external access to _is_gc_active
45 friend class constantPoolCacheKlass; // allocate() method inserts is_conc_safe
45 46
46 #ifdef ASSERT 47 #ifdef ASSERT
47 static int _fire_out_of_memory_count; 48 static int _fire_out_of_memory_count;
48 #endif 49 #endif
49 50
80 virtual void accumulate_statistics_all_tlabs(); 81 virtual void accumulate_statistics_all_tlabs();
81 82
82 // Reinitialize tlabs before resuming mutators. 83 // Reinitialize tlabs before resuming mutators.
83 virtual void resize_all_tlabs(); 84 virtual void resize_all_tlabs();
84 85
85 debug_only(static void check_for_valid_allocation_state();)
86
87 protected: 86 protected:
88 // Allocate from the current thread's TLAB, with broken-out slow path. 87 // Allocate from the current thread's TLAB, with broken-out slow path.
89 inline static HeapWord* allocate_from_tlab(Thread* thread, size_t size); 88 inline static HeapWord* allocate_from_tlab(Thread* thread, size_t size);
90 static HeapWord* allocate_from_tlab_slow(Thread* thread, size_t size); 89 static HeapWord* allocate_from_tlab_slow(Thread* thread, size_t size);
91 90
140 // Verification functions 139 // Verification functions
141 virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size) 140 virtual void check_for_bad_heap_word_value(HeapWord* addr, size_t size)
142 PRODUCT_RETURN; 141 PRODUCT_RETURN;
143 virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size) 142 virtual void check_for_non_bad_heap_word_value(HeapWord* addr, size_t size)
144 PRODUCT_RETURN; 143 PRODUCT_RETURN;
144 debug_only(static void check_for_valid_allocation_state();)
145 145
146 public: 146 public:
147 enum Name { 147 enum Name {
148 Abstract, 148 Abstract,
149 SharedHeap, 149 SharedHeap,