< prev index next >

src/hotspot/share/gc/g1/dirtyCardQueue.hpp

Print this page
rev 53151 : [mq]: tschatzl_review


 100                                          uint worker_i,
 101                                          size_t stop_at,
 102                                          bool during_pause);
 103 
 104   bool mut_process_buffer(BufferNode* node);
 105 
 106   G1FreeIdSet* _free_ids;
 107 
 108   // The number of completed buffers processed by mutator and rs thread,
 109   // respectively.
 110   jint _processed_buffers_mut;
 111   jint _processed_buffers_rs_thread;
 112 
 113   // Current buffer node used for parallel iteration.
 114   BufferNode* volatile _cur_par_buffer_node;
 115 
 116   void concatenate_log(DirtyCardQueue& dcq);
 117 
 118 public:
 119   DirtyCardQueueSet(bool notify_when_complete = true);

 120 
 121   void initialize(Monitor* cbl_mon,
 122                   BufferNode::Allocator* allocator,
 123                   Mutex* lock,
 124                   bool init_free_ids = false);
 125 
 126   // The number of parallel ids that can be claimed to allow collector or
 127   // mutator threads to do card-processing work.
 128   static uint num_par_ids();
 129 
 130   static void handle_zero_index_for_thread(JavaThread* t);
 131 
 132   // Apply G1RefineCardConcurrentlyClosure to completed buffers until there are stop_at
 133   // completed buffers remaining.
 134   bool refine_completed_buffer_concurrently(uint worker_i, size_t stop_at);
 135 
 136   // Apply the given closure to all completed buffers. The given closure's do_card_ptr
 137   // must never return false. Must only be called during GC.
 138   bool apply_closure_during_gc(CardTableEntryClosure* cl, uint worker_i);
 139 




 100                                          uint worker_i,
 101                                          size_t stop_at,
 102                                          bool during_pause);
 103 
 104   bool mut_process_buffer(BufferNode* node);
 105 
 106   G1FreeIdSet* _free_ids;
 107 
 108   // The number of completed buffers processed by mutator and rs thread,
 109   // respectively.
 110   jint _processed_buffers_mut;
 111   jint _processed_buffers_rs_thread;
 112 
 113   // Current buffer node used for parallel iteration.
 114   BufferNode* volatile _cur_par_buffer_node;
 115 
 116   void concatenate_log(DirtyCardQueue& dcq);
 117 
 118 public:
 119   DirtyCardQueueSet(bool notify_when_complete = true);
 120   ~DirtyCardQueueSet();
 121 
 122   void initialize(Monitor* cbl_mon,
 123                   BufferNode::Allocator* allocator,
 124                   Mutex* lock,
 125                   bool init_free_ids = false);
 126 
 127   // The number of parallel ids that can be claimed to allow collector or
 128   // mutator threads to do card-processing work.
 129   static uint num_par_ids();
 130 
 131   static void handle_zero_index_for_thread(JavaThread* t);
 132 
 133   // Apply G1RefineCardConcurrentlyClosure to completed buffers until there are stop_at
 134   // completed buffers remaining.
 135   bool refine_completed_buffer_concurrently(uint worker_i, size_t stop_at);
 136 
 137   // Apply the given closure to all completed buffers. The given closure's do_card_ptr
 138   // must never return false. Must only be called during GC.
 139   bool apply_closure_during_gc(CardTableEntryClosure* cl, uint worker_i);
 140 


< prev index next >