< prev index next >

src/share/vm/gc/shared/collectedHeap.hpp

Print this page
rev 13243 : 8179268: Factor out AdaptiveSizePolicy from top-level interfaces CollectorPolicy and CollectedHeap
Reviewed-by: pliden, mgerdin


 461   // Returns "true" iff there is a stop-world GC in progress.  (I assume
 462   // that it should answer "false" for the concurrent part of a concurrent
 463   // collector -- dld).
 464   bool is_gc_active() const { return _is_gc_active; }
 465 
 466   // Total number of GC collections (started)
 467   unsigned int total_collections() const { return _total_collections; }
 468   unsigned int total_full_collections() const { return _total_full_collections;}
 469 
 470   // Increment total number of GC collections (started)
 471   // Should be protected but used by PSMarkSweep - cleanup for 1.4.2
 472   void increment_total_collections(bool full = false) {
 473     _total_collections++;
 474     if (full) {
 475       increment_total_full_collections();
 476     }
 477   }
 478 
 479   void increment_total_full_collections() { _total_full_collections++; }
 480 
 481   // Return the AdaptiveSizePolicy for the heap.
 482   virtual AdaptiveSizePolicy* size_policy() = 0;
 483 
 484   // Return the CollectorPolicy for the heap
 485   virtual CollectorPolicy* collector_policy() const = 0;
 486 
 487   // Iterate over all objects, calling "cl.do_object" on each.
 488   virtual void object_iterate(ObjectClosure* cl) = 0;
 489 
 490   // Similar to object_iterate() except iterates only
 491   // over live objects.
 492   virtual void safe_object_iterate(ObjectClosure* cl) = 0;
 493 
 494   // NOTE! There is no requirement that a collector implement these
 495   // functions.
 496   //
 497   // A CollectedHeap is divided into a dense sequence of "blocks"; that is,
 498   // each address in the (reserved) heap is a member of exactly
 499   // one block.  The defining characteristic of a block is that it is
 500   // possible to find its size, and thus to progress forward to the next
 501   // block.  (Blocks may be of different sizes.)  Thus, blocks may
 502   // represent Java objects, or they might be free blocks in a
 503   // free-list-based heap (or subheap), as long as the two kinds are




 461   // Returns "true" iff there is a stop-world GC in progress.  (I assume
 462   // that it should answer "false" for the concurrent part of a concurrent
 463   // collector -- dld).
 464   bool is_gc_active() const { return _is_gc_active; }
 465 
 466   // Total number of GC collections (started)
 467   unsigned int total_collections() const { return _total_collections; }
 468   unsigned int total_full_collections() const { return _total_full_collections;}
 469 
 470   // Increment total number of GC collections (started)
 471   // Should be protected but used by PSMarkSweep - cleanup for 1.4.2
 472   void increment_total_collections(bool full = false) {
 473     _total_collections++;
 474     if (full) {
 475       increment_total_full_collections();
 476     }
 477   }
 478 
 479   void increment_total_full_collections() { _total_full_collections++; }
 480 



 481   // Return the CollectorPolicy for the heap
 482   virtual CollectorPolicy* collector_policy() const = 0;
 483 
 484   // Iterate over all objects, calling "cl.do_object" on each.
 485   virtual void object_iterate(ObjectClosure* cl) = 0;
 486 
 487   // Similar to object_iterate() except iterates only
 488   // over live objects.
 489   virtual void safe_object_iterate(ObjectClosure* cl) = 0;
 490 
 491   // NOTE! There is no requirement that a collector implement these
 492   // functions.
 493   //
 494   // A CollectedHeap is divided into a dense sequence of "blocks"; that is,
 495   // each address in the (reserved) heap is a member of exactly
 496   // one block.  The defining characteristic of a block is that it is
 497   // possible to find its size, and thus to progress forward to the next
 498   // block.  (Blocks may be of different sizes.)  Thus, blocks may
 499   // represent Java objects, or they might be free blocks in a
 500   // free-list-based heap (or subheap), as long as the two kinds are


< prev index next >