141 }
142 size_t process_cards_threshold() const {
143 return _process_cards_threshold;
144 }
145 static const size_t ProcessCardsThresholdNever = SIZE_MAX;
146
147 // Notify the consumer if the number of buffers crossed the threshold
148 void notify_if_necessary();
149
150 void merge_bufferlists(G1RedirtyCardsQueueSet* src);
151
152 G1BufferNodeList take_all_completed_buffers();
153
154 // If there are more than stop_at cards in the completed buffers, pop
155 // a buffer, refine its contents, and return true. Otherwise return
156 // false.
157 //
158 // Stops processing a buffer if SuspendibleThreadSet::should_yield(),
159 // returning the incompletely processed buffer to the completed buffer
160 // list, for later processing of the remainder.
161 bool refine_completed_buffer_concurrently(uint worker_i, size_t stop_at);
162
163 // If a full collection is happening, reset partial logs, and release
164 // completed ones: the full collection will make them all irrelevant.
165 void abandon_logs();
166
167 // If any threads have partial logs, add them to the global list of logs.
168 void concatenate_logs();
169
170 void set_max_cards(size_t m) {
171 _max_cards = m;
172 }
173 size_t max_cards() const {
174 return _max_cards;
175 }
176
177 void set_max_cards_padding(size_t padding) {
178 _max_cards_padding = padding;
179 }
180 size_t max_cards_padding() const {
181 return _max_cards_padding;
|
141 }
142 size_t process_cards_threshold() const {
143 return _process_cards_threshold;
144 }
145 static const size_t ProcessCardsThresholdNever = SIZE_MAX;
146
147 // Notify the consumer if the number of buffers crossed the threshold
148 void notify_if_necessary();
149
150 void merge_bufferlists(G1RedirtyCardsQueueSet* src);
151
152 G1BufferNodeList take_all_completed_buffers();
153
154 // If there are more than stop_at cards in the completed buffers, pop
155 // a buffer, refine its contents, and return true. Otherwise return
156 // false.
157 //
158 // Stops processing a buffer if SuspendibleThreadSet::should_yield(),
159 // returning the incompletely processed buffer to the completed buffer
160 // list, for later processing of the remainder.
161 bool refine_completed_buffer_concurrently(uint worker_id, size_t stop_at);
162
163 // If a full collection is happening, reset partial logs, and release
164 // completed ones: the full collection will make them all irrelevant.
165 void abandon_logs();
166
167 // If any threads have partial logs, add them to the global list of logs.
168 void concatenate_logs();
169
170 void set_max_cards(size_t m) {
171 _max_cards = m;
172 }
173 size_t max_cards() const {
174 return _max_cards;
175 }
176
177 void set_max_cards_padding(size_t padding) {
178 _max_cards_padding = padding;
179 }
180 size_t max_cards_padding() const {
181 return _max_cards_padding;
|