< prev index next >

src/hotspot/share/gc/cms/parNewGeneration.hpp

Print this page
rev 50505 : imported patch 8204613-stringtable-unclean-fix


 228   double elapsed_time() const {
 229     return os::elapsedTime() - _start;
 230   }
 231 };
 232 
 233 class ParNewGenTask: public AbstractGangTask {
 234  private:
 235   ParNewGeneration*            _young_gen;
 236   Generation*                  _old_gen;
 237   HeapWord*                    _young_old_boundary;
 238   class ParScanThreadStateSet* _state_set;
 239   StrongRootsScope*            _strong_roots_scope;
 240   OopStorage::ParState<false, false> _par_state_string;
 241 
 242 public:
 243   ParNewGenTask(ParNewGeneration*      young_gen,
 244                 Generation*            old_gen,
 245                 HeapWord*              young_old_boundary,
 246                 ParScanThreadStateSet* state_set,
 247                 StrongRootsScope*      strong_roots_scope);

 248 
 249   HeapWord* young_old_boundary() { return _young_old_boundary; }
 250 
 251   void work(uint worker_id);
 252 };
 253 
 254 class KeepAliveClosure: public DefNewGeneration::KeepAliveClosure {
 255  protected:
 256   template <class T> void do_oop_work(T* p);
 257  public:
 258   KeepAliveClosure(ScanWeakRefClosure* cl);
 259   virtual void do_oop(oop* p);
 260   virtual void do_oop(narrowOop* p);
 261 };
 262 
 263 template <typename OopClosureType1, typename OopClosureType2>
 264 class EvacuateFollowersClosureGeneral: public VoidClosure {
 265  private:
 266   CMSHeap* _heap;
 267   OopClosureType1* _scan_cur_or_nonheap;




 228   double elapsed_time() const {
 229     return os::elapsedTime() - _start;
 230   }
 231 };
 232 
 233 class ParNewGenTask: public AbstractGangTask {
 234  private:
 235   ParNewGeneration*            _young_gen;
 236   Generation*                  _old_gen;
 237   HeapWord*                    _young_old_boundary;
 238   class ParScanThreadStateSet* _state_set;
 239   StrongRootsScope*            _strong_roots_scope;
 240   OopStorage::ParState<false, false> _par_state_string;
 241 
 242 public:
 243   ParNewGenTask(ParNewGeneration*      young_gen,
 244                 Generation*            old_gen,
 245                 HeapWord*              young_old_boundary,
 246                 ParScanThreadStateSet* state_set,
 247                 StrongRootsScope*      strong_roots_scope);
 248   ~ParNewGenTask();
 249 
 250   HeapWord* young_old_boundary() { return _young_old_boundary; }
 251 
 252   void work(uint worker_id);
 253 };
 254 
 255 class KeepAliveClosure: public DefNewGeneration::KeepAliveClosure {
 256  protected:
 257   template <class T> void do_oop_work(T* p);
 258  public:
 259   KeepAliveClosure(ScanWeakRefClosure* cl);
 260   virtual void do_oop(oop* p);
 261   virtual void do_oop(narrowOop* p);
 262 };
 263 
 264 template <typename OopClosureType1, typename OopClosureType2>
 265 class EvacuateFollowersClosureGeneral: public VoidClosure {
 266  private:
 267   CMSHeap* _heap;
 268   OopClosureType1* _scan_cur_or_nonheap;


< prev index next >