< prev index next >

src/hotspot/share/gc/parallel/psCompactionManager.cpp

Print this page

 59   _old_gen = heap->old_gen();
 60   _start_array = old_gen()->start_array();
 61 
 62   marking_stack()->initialize();
 63   _objarray_stack.initialize();
 64   _region_stack.initialize();
 65 
 66   reset_bitmap_query_cache();
 67 }
 68 
 69 void ParCompactionManager::initialize(ParMarkBitMap* mbm) {
 70   assert(ParallelScavengeHeap::heap() != NULL,
 71     "Needed for initialization");
 72 
 73   _mark_bitmap = mbm;
 74 
 75   uint parallel_gc_threads = ParallelScavengeHeap::heap()->workers().total_workers();
 76 
 77   assert(_manager_array == NULL, "Attempt to initialize twice");
 78   _manager_array = NEW_C_HEAP_ARRAY(ParCompactionManager*, parallel_gc_threads+1, mtGC);
 79   guarantee(_manager_array != NULL, "Could not allocate manager_array");
 80 
 81   _stack_array = new OopTaskQueueSet(parallel_gc_threads);
 82   guarantee(_stack_array != NULL, "Could not allocate stack_array");
 83   _objarray_queues = new ObjArrayTaskQueueSet(parallel_gc_threads);
 84   guarantee(_objarray_queues != NULL, "Could not allocate objarray_queues");
 85   _region_array = new RegionTaskQueueSet(parallel_gc_threads);
 86   guarantee(_region_array != NULL, "Could not allocate region_array");
 87 
 88   // Create and register the ParCompactionManager(s) for the worker threads.
 89   for(uint i=0; i<parallel_gc_threads; i++) {
 90     _manager_array[i] = new ParCompactionManager();
 91     guarantee(_manager_array[i] != NULL, "Could not create ParCompactionManager");
 92     stack_array()->register_queue(i, _manager_array[i]->marking_stack());
 93     _objarray_queues->register_queue(i, &_manager_array[i]->_objarray_stack);
 94     region_array()->register_queue(i, _manager_array[i]->region_stack());
 95   }
 96 
 97   // The VMThread gets its own ParCompactionManager, which is not available
 98   // for work stealing.
 99   _manager_array[parallel_gc_threads] = new ParCompactionManager();

 59   _old_gen = heap->old_gen();
 60   _start_array = old_gen()->start_array();
 61 
 62   marking_stack()->initialize();
 63   _objarray_stack.initialize();
 64   _region_stack.initialize();
 65 
 66   reset_bitmap_query_cache();
 67 }
 68 
 69 void ParCompactionManager::initialize(ParMarkBitMap* mbm) {
 70   assert(ParallelScavengeHeap::heap() != NULL,
 71     "Needed for initialization");
 72 
 73   _mark_bitmap = mbm;
 74 
 75   uint parallel_gc_threads = ParallelScavengeHeap::heap()->workers().total_workers();
 76 
 77   assert(_manager_array == NULL, "Attempt to initialize twice");
 78   _manager_array = NEW_C_HEAP_ARRAY(ParCompactionManager*, parallel_gc_threads+1, mtGC);

 79 
 80   _stack_array = new OopTaskQueueSet(parallel_gc_threads);
 81   guarantee(_stack_array != NULL, "Could not allocate stack_array");
 82   _objarray_queues = new ObjArrayTaskQueueSet(parallel_gc_threads);
 83   guarantee(_objarray_queues != NULL, "Could not allocate objarray_queues");
 84   _region_array = new RegionTaskQueueSet(parallel_gc_threads);
 85   guarantee(_region_array != NULL, "Could not allocate region_array");
 86 
 87   // Create and register the ParCompactionManager(s) for the worker threads.
 88   for(uint i=0; i<parallel_gc_threads; i++) {
 89     _manager_array[i] = new ParCompactionManager();
 90     guarantee(_manager_array[i] != NULL, "Could not create ParCompactionManager");
 91     stack_array()->register_queue(i, _manager_array[i]->marking_stack());
 92     _objarray_queues->register_queue(i, &_manager_array[i]->_objarray_stack);
 93     region_array()->register_queue(i, _manager_array[i]->region_stack());
 94   }
 95 
 96   // The VMThread gets its own ParCompactionManager, which is not available
 97   // for work stealing.
 98   _manager_array[parallel_gc_threads] = new ParCompactionManager();
< prev index next >