src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp
changeset 57777 90ead0febf56
parent 55557 657924d1e2ba
child 57782 ca133d5ea78a
equal deleted inserted replaced
57774:21dccfac0ec5 57777:90ead0febf56
   539   // Manipulated with CAS in the parallel/multi-threaded case.
   539   // Manipulated with CAS in the parallel/multi-threaded case.
   540   oopDesc* volatile _overflow_list;
   540   oopDesc* volatile _overflow_list;
   541   // The following array-pair keeps track of mark words
   541   // The following array-pair keeps track of mark words
   542   // displaced for accommodating overflow list above.
   542   // displaced for accommodating overflow list above.
   543   // This code will likely be revisited under RFE#4922830.
   543   // This code will likely be revisited under RFE#4922830.
   544   Stack<oop, mtGC>     _preserved_oop_stack;
   544   Stack<oop, mtGC>      _preserved_oop_stack;
   545   Stack<markOop, mtGC> _preserved_mark_stack;
   545   Stack<markWord, mtGC> _preserved_mark_stack;
   546 
   546 
   547   // In support of multi-threaded concurrent phases
   547   // In support of multi-threaded concurrent phases
   548   YieldingFlexibleWorkGang* _conc_workers;
   548   YieldingFlexibleWorkGang* _conc_workers;
   549 
   549 
   550   // Performance Counters
   550   // Performance Counters
   740   // The following is, obviously, not, in general, "MT-stable"
   740   // The following is, obviously, not, in general, "MT-stable"
   741   bool overflow_list_is_empty() const;
   741   bool overflow_list_is_empty() const;
   742 
   742 
   743   void preserve_mark_if_necessary(oop p);
   743   void preserve_mark_if_necessary(oop p);
   744   void par_preserve_mark_if_necessary(oop p);
   744   void par_preserve_mark_if_necessary(oop p);
   745   void preserve_mark_work(oop p, markOop m);
   745   void preserve_mark_work(oop p, markWord m);
   746   void restore_preserved_marks_if_any();
   746   void restore_preserved_marks_if_any();
   747   NOT_PRODUCT(bool no_preserved_marks() const;)
   747   NOT_PRODUCT(bool no_preserved_marks() const;)
   748   // In support of testing overflow code
   748   // In support of testing overflow code
   749   NOT_PRODUCT(int _overflow_counter;)
   749   NOT_PRODUCT(int _overflow_counter;)
   750   NOT_PRODUCT(bool simulate_overflow();)       // Sequential
   750   NOT_PRODUCT(bool simulate_overflow();)       // Sequential
  1134   size_t direct_allocated_words() const { return _direct_allocated_words; }
  1134   size_t direct_allocated_words() const { return _direct_allocated_words; }
  1135   void reset_direct_allocated_words()   { _direct_allocated_words = 0; }
  1135   void reset_direct_allocated_words()   { _direct_allocated_words = 0; }
  1136 
  1136 
  1137   // Overrides for parallel promotion.
  1137   // Overrides for parallel promotion.
  1138   virtual oop par_promote(int thread_num,
  1138   virtual oop par_promote(int thread_num,
  1139                           oop obj, markOop m, size_t word_sz);
  1139                           oop obj, markWord m, size_t word_sz);
  1140   virtual void par_promote_alloc_done(int thread_num);
  1140   virtual void par_promote_alloc_done(int thread_num);
  1141   virtual void par_oop_since_save_marks_iterate_done(int thread_num);
  1141   virtual void par_oop_since_save_marks_iterate_done(int thread_num);
  1142 
  1142 
  1143   virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes) const;
  1143   virtual bool promotion_attempt_is_safe(size_t promotion_in_bytes) const;
  1144 
  1144