comparison src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp @ 1638:b2a00dd3117c

6957084: simplify TaskQueue overflow handling Reviewed-by: ysr, jmasa
author jcoomes
date Thu, 01 Jul 2010 21:40:45 -0700
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1628:a00567c82f02 1638:b2a00dd3117c
24 24
25 void ParCompactionManager::push_objarray(oop obj, size_t index) 25 void ParCompactionManager::push_objarray(oop obj, size_t index)
26 { 26 {
27 ObjArrayTask task(obj, index); 27 ObjArrayTask task(obj, index);
28 assert(task.is_valid(), "bad ObjArrayTask"); 28 assert(task.is_valid(), "bad ObjArrayTask");
29 if (!_objarray_queue.push(task)) { 29 _objarray_stack.push(task);
30 _objarray_overflow_stack->push(task);
31 }
32 } 30 }
31
32 void ParCompactionManager::push_region(size_t index)
33 {
34 #ifdef ASSERT
35 const ParallelCompactData& sd = PSParallelCompact::summary_data();
36 ParallelCompactData::RegionData* const region_ptr = sd.region(index);
37 assert(region_ptr->claimed(), "must be claimed");
38 assert(region_ptr->_pushed++ == 0, "should only be pushed once");
39 #endif
40 region_stack()->push(index);
41 }