< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.hpp

Print this page
rev 50928 : Process remaining SATB buffers in final mark/traverse loop instead of separate phase


  64 
  65   ShenandoahHeapRegionSet* const traversal_set() const { return _traversal_set; }
  66   ShenandoahHeapRegionSet* const root_regions()  const { return _root_regions;}
  67 
  68   void reset();
  69   void prepare();
  70   void init_traversal_collection();
  71   void concurrent_traversal_collection();
  72   void final_traversal_collection();
  73 
  74   template <class T, bool STRING_DEDUP, bool DEGEN, bool UPDATE_MATRIX>
  75   inline void process_oop(T* p, Thread* thread, ShenandoahObjToScanQueue* queue, oop base_obj, ShenandoahStrDedupQueue* dq = NULL);
  76 
  77   bool check_and_handle_cancelled_gc(ParallelTaskTerminator* terminator);
  78 
  79   ShenandoahObjToScanQueueSet* task_queues();
  80 
  81   jushort* get_liveness(uint worker_id);
  82   void flush_liveness(uint worker_id);
  83 
  84   void main_loop(uint worker_id, ParallelTaskTerminator* terminator, bool do_satb);
  85 
  86   void push_arraycopy(HeapWord* start, size_t count);
  87 
  88 private:
  89 
  90   void prepare_regions();
  91 
  92   template <bool DO_SATB>
  93   void main_loop_prework(uint w, ParallelTaskTerminator* t);
  94 
  95   template <class T, bool DO_SATB>
  96   void main_loop_work(T* cl, jushort* live_data, uint worker_id, ParallelTaskTerminator* terminator);
  97 
  98   void preclean_weak_refs();
  99   void weak_refs_work();
 100   void weak_refs_work_doit();
 101 
 102   void fixup_roots();
 103 
 104   template <class T>
 105   bool process_arraycopy_task(T* cl);
 106 };
 107 
 108 #endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP


  64 
  65   ShenandoahHeapRegionSet* const traversal_set() const { return _traversal_set; }
  66   ShenandoahHeapRegionSet* const root_regions()  const { return _root_regions;}
  67 
  68   void reset();
  69   void prepare();
  70   void init_traversal_collection();
  71   void concurrent_traversal_collection();
  72   void final_traversal_collection();
  73 
  74   template <class T, bool STRING_DEDUP, bool DEGEN, bool UPDATE_MATRIX>
  75   inline void process_oop(T* p, Thread* thread, ShenandoahObjToScanQueue* queue, oop base_obj, ShenandoahStrDedupQueue* dq = NULL);
  76 
  77   bool check_and_handle_cancelled_gc(ParallelTaskTerminator* terminator);
  78 
  79   ShenandoahObjToScanQueueSet* task_queues();
  80 
  81   jushort* get_liveness(uint worker_id);
  82   void flush_liveness(uint worker_id);
  83 
  84   void main_loop(uint worker_id, ParallelTaskTerminator* terminator);
  85 
  86   void push_arraycopy(HeapWord* start, size_t count);
  87 
  88 private:
  89 
  90   void prepare_regions();
  91 
  92   template <class T>



  93   void main_loop_work(T* cl, jushort* live_data, uint worker_id, ParallelTaskTerminator* terminator);
  94 
  95   void preclean_weak_refs();
  96   void weak_refs_work();
  97   void weak_refs_work_doit();
  98 
  99   void fixup_roots();
 100 
 101   template <class T>
 102   bool process_arraycopy_task(T* cl);
 103 };
 104 
 105 #endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHTRAVERSALGC_HPP
< prev index next >