217 //
218 // This task is used to update the dense prefix
219 // of a space.
220 //
221
222 class UpdateDensePrefixTask : public GCTask {
223 private:
224 PSParallelCompact::SpaceId _space_id;
225 size_t _region_index_start;
226 size_t _region_index_end;
227
228 public:
229 char* name() { return (char *)"update-dense_prefix-task"; }
230
231 UpdateDensePrefixTask(PSParallelCompact::SpaceId space_id,
232 size_t region_index_start,
233 size_t region_index_end);
234
235 virtual void do_it(GCTaskManager* manager, uint which);
236 };
237
238 //
239 // DrainStacksCompactionTask
240 //
241 // This task processes regions that have been added to the stacks of each
242 // compaction manager.
243 //
244 // Trying to use one draining thread does not work because there are no
245 // guarantees about which task will be picked up by which thread. For example,
246 // if thread A gets all the preloaded regions, thread A may not get a draining
247 // task (they may all be done by other threads).
248 //
249
250 class DrainStacksCompactionTask : public GCTask {
251 uint _stack_index;
252 uint stack_index() { return _stack_index; }
253 public:
254 DrainStacksCompactionTask(uint stack_index) : GCTask(),
255 _stack_index(stack_index) {};
256 char* name() { return (char *)"drain-region-task"; }
257 virtual void do_it(GCTaskManager* manager, uint which);
258 };
259
260 #endif // SHARE_VM_GC_PARALLEL_PCTASKS_HPP
|
217 //
218 // This task is used to update the dense prefix
219 // of a space.
220 //
221
222 class UpdateDensePrefixTask : public GCTask {
223 private:
224 PSParallelCompact::SpaceId _space_id;
225 size_t _region_index_start;
226 size_t _region_index_end;
227
228 public:
229 char* name() { return (char *)"update-dense_prefix-task"; }
230
231 UpdateDensePrefixTask(PSParallelCompact::SpaceId space_id,
232 size_t region_index_start,
233 size_t region_index_end);
234
235 virtual void do_it(GCTaskManager* manager, uint which);
236 };
237 #endif // SHARE_VM_GC_PARALLEL_PCTASKS_HPP
|