< prev index next >

src/share/vm/memory/sharedHeap.cpp

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/stringTable.hpp"
  27 #include "classfile/systemDictionary.hpp"
  28 #include "code/codeCache.hpp"
  29 #include "gc_interface/collectedHeap.inline.hpp"
  30 #include "memory/sharedHeap.hpp"
  31 #include "oops/oop.inline.hpp"
  32 #include "runtime/atomic.inline.hpp"
  33 #include "runtime/fprofiler.hpp"
  34 #include "runtime/java.hpp"
  35 #include "utilities/copy.hpp"
  36 #include "utilities/workgroup.hpp"
  37 
  38 SharedHeap::SharedHeap() :
  39   CollectedHeap(),
  40   _workers(NULL)
  41 {
  42   if (UseConcMarkSweepGC || UseG1GC) {
  43     _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads,
  44                             /* are_GC_task_threads */true,
  45                             /* are_ConcurrentGC_threads */false);
  46     if (_workers == NULL) {
  47       vm_exit_during_initialization("Failed necessary allocation.");
  48     } else {
  49       _workers->initialize_workers();
  50     }
  51   }
  52 }
  53 
  54 void SharedHeap::set_par_threads(uint t) {
  55   assert(t == 0 || !UseSerialGC, "Cannot have parallel threads");
  56   _n_par_threads = t;
  57 }
  58 
  59 SharedHeap::StrongRootsScope::StrongRootsScope(SharedHeap* heap, bool activate)
  60   : MarkScope(activate), _sh(heap)
  61 {
  62   if (_active) {
  63     Threads::change_thread_claim_parity();
  64     // Zero the claimed high water mark in the StringTable
  65     StringTable::clear_parallel_claimed_index();
  66   }
  67 }
  68 
  69 SharedHeap::StrongRootsScope::~StrongRootsScope() {
  70   Threads::assert_all_threads_claimed();
  71 }
  72 
  73 void SharedHeap::set_barrier_set(BarrierSet* bs) {
  74   _barrier_set = bs;
  75   // Cached barrier set for fast access in oops
  76   oopDesc::set_bs(bs);
  77 }
  78 
  79 void SharedHeap::post_initialize() {
  80   CollectedHeap::post_initialize();
  81   ref_processing_init();
  82 }
  83 
  84 void SharedHeap::ref_processing_init() {}


  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "classfile/stringTable.hpp"
  27 #include "classfile/systemDictionary.hpp"
  28 #include "code/codeCache.hpp"
  29 #include "gc_interface/collectedHeap.inline.hpp"
  30 #include "memory/sharedHeap.hpp"
  31 #include "oops/oop.inline.hpp"
  32 #include "runtime/atomic.inline.hpp"
  33 #include "runtime/fprofiler.hpp"
  34 #include "runtime/java.hpp"
  35 #include "utilities/copy.hpp"
  36 #include "utilities/workgroup.hpp"
  37 
  38 SharedHeap::SharedHeap() :
  39   CollectedHeap()
  40 {}

















  41 
  42 SharedHeap::StrongRootsScope::StrongRootsScope(SharedHeap* heap, bool activate)
  43   : MarkScope(activate), _sh(heap)
  44 {
  45   if (_active) {
  46     Threads::change_thread_claim_parity();
  47     // Zero the claimed high water mark in the StringTable
  48     StringTable::clear_parallel_claimed_index();
  49   }
  50 }
  51 
  52 SharedHeap::StrongRootsScope::~StrongRootsScope() {
  53   Threads::assert_all_threads_claimed();
  54 }













< prev index next >