src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp

changeset 980
58054a18d735
parent 961
818efdefcc99
child 1014
0fbdb4381b99
child 1051
4f360ec815ba
     1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Thu Feb 05 11:42:10 2009 -0800
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Fri Feb 06 01:38:50 2009 +0300
     1.3 @@ -90,7 +90,7 @@
     1.4    HeapRegion* _curr_scan_only;
     1.5  
     1.6    HeapRegion* _survivor_head;
     1.7 -  HeapRegion* _survivors_tail;
     1.8 +  HeapRegion* _survivor_tail;
     1.9    size_t      _survivor_length;
    1.10  
    1.11    void          empty_list(HeapRegion* list);
    1.12 @@ -105,6 +105,7 @@
    1.13    bool          is_empty() { return _length == 0; }
    1.14    size_t        length() { return _length; }
    1.15    size_t        scan_only_length() { return _scan_only_length; }
    1.16 +  size_t        survivor_length() { return _survivor_length; }
    1.17  
    1.18    void rs_length_sampling_init();
    1.19    bool rs_length_sampling_more();
    1.20 @@ -120,6 +121,7 @@
    1.21    HeapRegion* first_region() { return _head; }
    1.22    HeapRegion* first_scan_only_region() { return _scan_only_head; }
    1.23    HeapRegion* first_survivor_region() { return _survivor_head; }
    1.24 +  HeapRegion* last_survivor_region() { return _survivor_tail; }
    1.25    HeapRegion* par_get_next_scan_only_region() {
    1.26      MutexLockerEx x(ParGCRareEvent_lock, Mutex::_no_safepoint_check_flag);
    1.27      HeapRegion* ret = _curr_scan_only;
    1.28 @@ -219,7 +221,7 @@
    1.29    // The to-space memory regions into which objects are being copied during
    1.30    // a GC.
    1.31    HeapRegion* _gc_alloc_regions[GCAllocPurposeCount];
    1.32 -  uint _gc_alloc_region_counts[GCAllocPurposeCount];
    1.33 +  size_t _gc_alloc_region_counts[GCAllocPurposeCount];
    1.34  
    1.35    // A list of the regions that have been set to be alloc regions in the
    1.36    // current collection.
    1.37 @@ -281,8 +283,8 @@
    1.38    // Returns "true" iff none of the gc alloc regions have any allocations
    1.39    // since the last call to "save_marks".
    1.40    bool all_alloc_regions_no_allocs_since_save_marks();
    1.41 -  // Calls "note_end_of_copying on all gc alloc_regions.
    1.42 -  void all_alloc_regions_note_end_of_copying();
    1.43 +  // Perform finalization stuff on all allocation regions.
    1.44 +  void retire_all_alloc_regions();
    1.45  
    1.46    // The number of regions allocated to hold humongous objects.
    1.47    int         _num_humongous_regions;
    1.48 @@ -351,6 +353,10 @@
    1.49    // that parallel threads might be attempting allocations.
    1.50    void par_allocate_remaining_space(HeapRegion* r);
    1.51  
    1.52 +  // Retires an allocation region when it is full or at the end of a
    1.53 +  // GC pause.
    1.54 +  void  retire_alloc_region(HeapRegion* alloc_region, bool par);
    1.55 +
    1.56    // Helper function for two callbacks below.
    1.57    // "full", if true, indicates that the GC is for a System.gc() request,
    1.58    // and should collect the entire heap.  If "clear_all_soft_refs" is true,

mercurial