< prev index next >

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

Print this page

        

@@ -76,10 +76,20 @@
   size_t _process_cards_threshold;
   volatile bool _process_completed_buffers;
 
   void abandon_completed_buffers();
 
+  // Refine the cards in "node" from its index to buffer_size.
+  // Stops processing if SuspendibleThreadSet::should_yield() is true.
+  // Returns true if the entire buffer was processed, false if there
+  // is a pending yield request.  The node's index is updated to exclude
+  // the processed elements, e.g. up to the element before processing
+  // stopped, or one past the last element if the entire buffer was
+  // processed. Increments *total_refined_cards by the number of cards
+  // processed and removed from the buffer.
+  bool refine_buffer(BufferNode* node, uint worker_id, size_t* total_refined_cards);
+
   bool mut_process_buffer(BufferNode* node);
 
   // If the queue contains more cards than configured here, the
   // mutator must start doing some of the concurrent refinement work.
   size_t _max_cards;
< prev index next >