< 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 >