264 _index < objArrayOop(_obj)->length();
265 }
266 #endif // ASSERT
267
268 void ParallelTaskTerminator::reset_for_reuse(uint n_threads) {
269 reset_for_reuse();
270 _n_threads = n_threads;
271 }
272
273 TaskTerminator::TaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
274 _terminator(UseOWSTTaskTerminator ? new OWSTTaskTerminator(n_threads, queue_set)
275 : new ParallelTaskTerminator(n_threads, queue_set)) {
276 }
277
278 TaskTerminator::~TaskTerminator() {
279 if (_terminator != NULL) {
280 delete _terminator;
281 }
282 }
283
284 // Move assignment
285 TaskTerminator& TaskTerminator::operator=(const TaskTerminator& o) {
286 if (_terminator != NULL) {
287 delete _terminator;
288 }
289 _terminator = o.terminator();
290 const_cast<TaskTerminator&>(o)._terminator = NULL;
291 return *this;
292 }
293
|
264 _index < objArrayOop(_obj)->length();
265 }
266 #endif // ASSERT
267
268 void ParallelTaskTerminator::reset_for_reuse(uint n_threads) {
269 reset_for_reuse();
270 _n_threads = n_threads;
271 }
272
273 TaskTerminator::TaskTerminator(uint n_threads, TaskQueueSetSuper* queue_set) :
274 _terminator(UseOWSTTaskTerminator ? new OWSTTaskTerminator(n_threads, queue_set)
275 : new ParallelTaskTerminator(n_threads, queue_set)) {
276 }
277
278 TaskTerminator::~TaskTerminator() {
279 if (_terminator != NULL) {
280 delete _terminator;
281 }
282 }
283
|