< prev index next >

src/share/vm/gc/g1/g1Allocator.hpp

Print this page




  59    virtual MutatorAllocRegion*    mutator_alloc_region(AllocationContext_t context) = 0;
  60    virtual SurvivorGCAllocRegion* survivor_gc_alloc_region(AllocationContext_t context) = 0;
  61    virtual OldGCAllocRegion*      old_gc_alloc_region(AllocationContext_t context) = 0;
  62    virtual size_t                 used() = 0;
  63    virtual bool                   is_retained_old_region(HeapRegion* hr) = 0;
  64 
  65    void                           reuse_retained_old_region(EvacuationInfo& evacuation_info,
  66                                                             OldGCAllocRegion* old,
  67                                                             HeapRegion** retained);
  68 
  69    size_t used_unlocked() const {
  70      return _summary_bytes_used;
  71    }
  72 
  73    void increase_used(size_t bytes) {
  74      _summary_bytes_used += bytes;
  75    }
  76 
  77    void decrease_used(size_t bytes) {
  78      assert(_summary_bytes_used >= bytes,
  79             err_msg("invariant: _summary_bytes_used: "SIZE_FORMAT" should be >= bytes: "SIZE_FORMAT,
  80                 _summary_bytes_used, bytes));
  81      _summary_bytes_used -= bytes;
  82    }
  83 
  84    void set_used(size_t bytes) {
  85      _summary_bytes_used = bytes;
  86    }
  87 
  88    virtual HeapRegion* new_heap_region(uint hrs_index,
  89                                        G1BlockOffsetSharedArray* sharedOffsetArray,
  90                                        MemRegion mr) {
  91      return new HeapRegion(hrs_index, sharedOffsetArray, mr);
  92    }
  93 };
  94 
  95 // The default allocator for G1.
  96 class G1DefaultAllocator : public G1Allocator {
  97 protected:
  98   // Alloc region used to satisfy mutator allocation requests.
  99   MutatorAllocRegion _mutator_alloc_region;




  59    virtual MutatorAllocRegion*    mutator_alloc_region(AllocationContext_t context) = 0;
  60    virtual SurvivorGCAllocRegion* survivor_gc_alloc_region(AllocationContext_t context) = 0;
  61    virtual OldGCAllocRegion*      old_gc_alloc_region(AllocationContext_t context) = 0;
  62    virtual size_t                 used() = 0;
  63    virtual bool                   is_retained_old_region(HeapRegion* hr) = 0;
  64 
  65    void                           reuse_retained_old_region(EvacuationInfo& evacuation_info,
  66                                                             OldGCAllocRegion* old,
  67                                                             HeapRegion** retained);
  68 
  69    size_t used_unlocked() const {
  70      return _summary_bytes_used;
  71    }
  72 
  73    void increase_used(size_t bytes) {
  74      _summary_bytes_used += bytes;
  75    }
  76 
  77    void decrease_used(size_t bytes) {
  78      assert(_summary_bytes_used >= bytes,
  79             err_msg("invariant: _summary_bytes_used: " SIZE_FORMAT " should be >= bytes: " SIZE_FORMAT,
  80                 _summary_bytes_used, bytes));
  81      _summary_bytes_used -= bytes;
  82    }
  83 
  84    void set_used(size_t bytes) {
  85      _summary_bytes_used = bytes;
  86    }
  87 
  88    virtual HeapRegion* new_heap_region(uint hrs_index,
  89                                        G1BlockOffsetSharedArray* sharedOffsetArray,
  90                                        MemRegion mr) {
  91      return new HeapRegion(hrs_index, sharedOffsetArray, mr);
  92    }
  93 };
  94 
  95 // The default allocator for G1.
  96 class G1DefaultAllocator : public G1Allocator {
  97 protected:
  98   // Alloc region used to satisfy mutator allocation requests.
  99   MutatorAllocRegion _mutator_alloc_region;


< prev index next >