< prev index next >

src/share/vm/services/memoryManager.cpp

Print this page
rev 8396 : imported patch epsilon-base


  81 GCMemoryManager* MemoryManager::get_cms_memory_manager() {
  82   return (GCMemoryManager*) new CMSMemoryManager();
  83 }
  84 
  85 GCMemoryManager* MemoryManager::get_psScavenge_memory_manager() {
  86   return (GCMemoryManager*) new PSScavengeMemoryManager();
  87 }
  88 
  89 GCMemoryManager* MemoryManager::get_psMarkSweep_memory_manager() {
  90   return (GCMemoryManager*) new PSMarkSweepMemoryManager();
  91 }
  92 
  93 GCMemoryManager* MemoryManager::get_g1YoungGen_memory_manager() {
  94   return (GCMemoryManager*) new G1YoungGenMemoryManager();
  95 }
  96 
  97 GCMemoryManager* MemoryManager::get_g1OldGen_memory_manager() {
  98   return (GCMemoryManager*) new G1OldGenMemoryManager();
  99 }
 100 




 101 instanceOop MemoryManager::get_memory_manager_instance(TRAPS) {
 102   // Must do an acquire so as to force ordering of subsequent
 103   // loads from anything _memory_mgr_obj points to or implies.
 104   instanceOop mgr_obj = (instanceOop)OrderAccess::load_ptr_acquire(&_memory_mgr_obj);
 105   if (mgr_obj == NULL) {
 106     // It's ok for more than one thread to execute the code up to the locked region.
 107     // Extra manager instances will just be gc'ed.
 108     Klass* k = Management::sun_management_ManagementFactory_klass(CHECK_0);
 109     instanceKlassHandle ik(THREAD, k);
 110 
 111     Handle mgr_name = java_lang_String::create_from_str(name(), CHECK_0);
 112 
 113     JavaValue result(T_OBJECT);
 114     JavaCallArguments args;
 115     args.push_oop(mgr_name);    // Argument 1
 116 
 117     Symbol* method_name = NULL;
 118     Symbol* signature = NULL;
 119     if (is_gc_memory_manager()) {
 120       method_name = vmSymbols::createGarbageCollector_name();




  81 GCMemoryManager* MemoryManager::get_cms_memory_manager() {
  82   return (GCMemoryManager*) new CMSMemoryManager();
  83 }
  84 
  85 GCMemoryManager* MemoryManager::get_psScavenge_memory_manager() {
  86   return (GCMemoryManager*) new PSScavengeMemoryManager();
  87 }
  88 
  89 GCMemoryManager* MemoryManager::get_psMarkSweep_memory_manager() {
  90   return (GCMemoryManager*) new PSMarkSweepMemoryManager();
  91 }
  92 
  93 GCMemoryManager* MemoryManager::get_g1YoungGen_memory_manager() {
  94   return (GCMemoryManager*) new G1YoungGenMemoryManager();
  95 }
  96 
  97 GCMemoryManager* MemoryManager::get_g1OldGen_memory_manager() {
  98   return (GCMemoryManager*) new G1OldGenMemoryManager();
  99 }
 100 
 101 GCMemoryManager* MemoryManager::get_epsilon_memory_manager() {
 102   return (GCMemoryManager*) new EpsilonMemoryManager();
 103 }
 104 
 105 instanceOop MemoryManager::get_memory_manager_instance(TRAPS) {
 106   // Must do an acquire so as to force ordering of subsequent
 107   // loads from anything _memory_mgr_obj points to or implies.
 108   instanceOop mgr_obj = (instanceOop)OrderAccess::load_ptr_acquire(&_memory_mgr_obj);
 109   if (mgr_obj == NULL) {
 110     // It's ok for more than one thread to execute the code up to the locked region.
 111     // Extra manager instances will just be gc'ed.
 112     Klass* k = Management::sun_management_ManagementFactory_klass(CHECK_0);
 113     instanceKlassHandle ik(THREAD, k);
 114 
 115     Handle mgr_name = java_lang_String::create_from_str(name(), CHECK_0);
 116 
 117     JavaValue result(T_OBJECT);
 118     JavaCallArguments args;
 119     args.push_oop(mgr_name);    // Argument 1
 120 
 121     Symbol* method_name = NULL;
 122     Symbol* signature = NULL;
 123     if (is_gc_memory_manager()) {
 124       method_name = vmSymbols::createGarbageCollector_name();


< prev index next >