comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 353:9bb2c10ac07b

6723570: G1: assertion failure: p == current_top or oop(p)->is_oop(),"p is not a block start" (revisited!) Summary: Fixed the incorrect assigment to G1OffsetTableContigSpace::_gc_time_stamp. Also added a little more paranoia to operations on a global timestamp. Reviewed-by: tonyp
author iveresov
date Thu, 10 Jul 2008 09:29:54 -0700
parents 37f87013dfd8
children 0edda524b58c
comparison
equal deleted inserted replaced
352:e0c09f7ec5c4 353:9bb2c10ac07b
245 245
246 // Summary information about popular objects; method to print it. 246 // Summary information about popular objects; method to print it.
247 NumberSeq _pop_obj_rc_at_copy; 247 NumberSeq _pop_obj_rc_at_copy;
248 void print_popularity_summary_info() const; 248 void print_popularity_summary_info() const;
249 249
250 unsigned _gc_time_stamp; 250 volatile unsigned _gc_time_stamp;
251 251
252 size_t* _surviving_young_words; 252 size_t* _surviving_young_words;
253 253
254 void setup_surviving_young_words(); 254 void setup_surviving_young_words();
255 void update_surviving_young_words(size_t* surv_young_words); 255 void update_surviving_young_words(size_t* surv_young_words);
651 return _gc_time_stamp; 651 return _gc_time_stamp;
652 } 652 }
653 653
654 void reset_gc_time_stamp() { 654 void reset_gc_time_stamp() {
655 _gc_time_stamp = 0; 655 _gc_time_stamp = 0;
656 OrderAccess::fence();
657 }
658
659 void increment_gc_time_stamp() {
660 ++_gc_time_stamp;
661 OrderAccess::fence();
656 } 662 }
657 663
658 void iterate_dirty_card_closure(bool concurrent, int worker_i); 664 void iterate_dirty_card_closure(bool concurrent, int worker_i);
659 665
660 // The shared block offset table array. 666 // The shared block offset table array.