< prev index next >

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

Print this page
rev 10742 : Make fields used in lock-free algorithms volatile


  37 #include "oops/instanceKlass.inline.hpp"
  38 #include "oops/instanceMirrorKlass.inline.hpp"
  39 #include "oops/objArrayKlass.inline.hpp"
  40 #include "oops/oop.inline.hpp"
  41 #include "runtime/atomic.inline.hpp"
  42 
  43 PSOldGen*            ParCompactionManager::_old_gen = NULL;
  44 ParCompactionManager**  ParCompactionManager::_manager_array = NULL;
  45 
  46 RegionTaskQueue**              ParCompactionManager::_region_list = NULL;
  47 
  48 OopTaskQueueSet*     ParCompactionManager::_stack_array = NULL;
  49 ParCompactionManager::ObjArrayTaskQueueSet*
  50   ParCompactionManager::_objarray_queues = NULL;
  51 ObjectStartArray*    ParCompactionManager::_start_array = NULL;
  52 ParMarkBitMap*       ParCompactionManager::_mark_bitmap = NULL;
  53 RegionTaskQueueSet*  ParCompactionManager::_region_array = NULL;
  54 
  55 uint*                 ParCompactionManager::_recycled_stack_index = NULL;
  56 int                   ParCompactionManager::_recycled_top = -1;
  57 int                   ParCompactionManager::_recycled_bottom = -1;
  58 
  59 ParCompactionManager::ParCompactionManager() :
  60     _action(CopyAndUpdate),
  61     _region_stack(NULL),
  62     _region_stack_index((uint)max_uintx) {
  63 
  64   ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
  65 
  66   _old_gen = heap->old_gen();
  67   _start_array = old_gen()->start_array();
  68 
  69   marking_stack()->initialize();
  70   _objarray_stack.initialize();
  71 
  72   reset_bitmap_query_cache();
  73 }
  74 
  75 ParCompactionManager::~ParCompactionManager() {
  76   delete _recycled_stack_index;
  77 }




  37 #include "oops/instanceKlass.inline.hpp"
  38 #include "oops/instanceMirrorKlass.inline.hpp"
  39 #include "oops/objArrayKlass.inline.hpp"
  40 #include "oops/oop.inline.hpp"
  41 #include "runtime/atomic.inline.hpp"
  42 
  43 PSOldGen*            ParCompactionManager::_old_gen = NULL;
  44 ParCompactionManager**  ParCompactionManager::_manager_array = NULL;
  45 
  46 RegionTaskQueue**              ParCompactionManager::_region_list = NULL;
  47 
  48 OopTaskQueueSet*     ParCompactionManager::_stack_array = NULL;
  49 ParCompactionManager::ObjArrayTaskQueueSet*
  50   ParCompactionManager::_objarray_queues = NULL;
  51 ObjectStartArray*    ParCompactionManager::_start_array = NULL;
  52 ParMarkBitMap*       ParCompactionManager::_mark_bitmap = NULL;
  53 RegionTaskQueueSet*  ParCompactionManager::_region_array = NULL;
  54 
  55 uint*                 ParCompactionManager::_recycled_stack_index = NULL;
  56 int                   ParCompactionManager::_recycled_top = -1;
  57 volatile int          ParCompactionManager::_recycled_bottom = -1;
  58 
  59 ParCompactionManager::ParCompactionManager() :
  60     _action(CopyAndUpdate),
  61     _region_stack(NULL),
  62     _region_stack_index((uint)max_uintx) {
  63 
  64   ParallelScavengeHeap* heap = ParallelScavengeHeap::heap();
  65 
  66   _old_gen = heap->old_gen();
  67   _start_array = old_gen()->start_array();
  68 
  69   marking_stack()->initialize();
  70   _objarray_stack.initialize();
  71 
  72   reset_bitmap_query_cache();
  73 }
  74 
  75 ParCompactionManager::~ParCompactionManager() {
  76   delete _recycled_stack_index;
  77 }


< prev index next >