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
|