102 size_t _last_query_ret;
103
104 static PSOldGen* old_gen() { return _old_gen; }
105 static ObjectStartArray* start_array() { return _start_array; }
106 static OopTaskQueueSet* stack_array() { return _stack_array; }
107
108 static void initialize(ParMarkBitMap* mbm);
109
110 protected:
111 // Array of tasks. Needed by the ParallelTaskTerminator.
112 static RegionTaskQueueSet* region_array() { return _region_array; }
113 OverflowTaskQueue<oop, mtGC>* marking_stack() { return &_marking_stack; }
114
115 // Pushes onto the marking stack. If the marking stack is full,
116 // pushes onto the overflow stack.
117 void stack_push(oop obj);
118 // Do not implement an equivalent stack_pop. Deal with the
119 // marking stack and overflow stack directly.
120
121 public:
122 static size_t pop_shadow_region_mt_safe(PSParallelCompact::RegionData* region_ptr);
123 static void push_shadow_region_mt_safe(size_t shadow_region);
124 static void push_shadow_region(size_t shadow_region);
125 static void remove_all_shadow_regions();
126
127 inline size_t next_shadow_region() { return _next_shadow_region; }
128 inline void set_next_shadow_region(size_t record) { _next_shadow_region = record; }
129 inline size_t move_next_shadow_region_by(size_t workers) {
130 _next_shadow_region += workers;
131 return next_shadow_region();
132 }
133
134 void reset_bitmap_query_cache() {
135 _last_query_beg = NULL;
136 _last_query_obj = NULL;
137 _last_query_ret = 0;
138 }
139
140 Action action() { return _action; }
141 void set_action(Action v) { _action = v; }
|
102 size_t _last_query_ret;
103
104 static PSOldGen* old_gen() { return _old_gen; }
105 static ObjectStartArray* start_array() { return _start_array; }
106 static OopTaskQueueSet* stack_array() { return _stack_array; }
107
108 static void initialize(ParMarkBitMap* mbm);
109
110 protected:
111 // Array of tasks. Needed by the ParallelTaskTerminator.
112 static RegionTaskQueueSet* region_array() { return _region_array; }
113 OverflowTaskQueue<oop, mtGC>* marking_stack() { return &_marking_stack; }
114
115 // Pushes onto the marking stack. If the marking stack is full,
116 // pushes onto the overflow stack.
117 void stack_push(oop obj);
118 // Do not implement an equivalent stack_pop. Deal with the
119 // marking stack and overflow stack directly.
120
121 public:
122 static const size_t InvalidShadow = ~0;
123 static size_t pop_shadow_region_mt_safe(PSParallelCompact::RegionData* region_ptr);
124 static void push_shadow_region_mt_safe(size_t shadow_region);
125 static void push_shadow_region(size_t shadow_region);
126 static void remove_all_shadow_regions();
127
128 inline size_t next_shadow_region() { return _next_shadow_region; }
129 inline void set_next_shadow_region(size_t record) { _next_shadow_region = record; }
130 inline size_t move_next_shadow_region_by(size_t workers) {
131 _next_shadow_region += workers;
132 return next_shadow_region();
133 }
134
135 void reset_bitmap_query_cache() {
136 _last_query_beg = NULL;
137 _last_query_obj = NULL;
138 _last_query_ret = 0;
139 }
140
141 Action action() { return _action; }
142 void set_action(Action v) { _action = v; }
|