Print this page

        

@@ -416,11 +416,11 @@
 
   // Return the free chunk at the end of the space.  If no such
   // chunk exists, return NULL.
   FreeChunk* find_chunk_at_end();
 
-  bool adaptive_freelists() { return _adaptive_freelists; }
+  bool adaptive_freelists() const { return _adaptive_freelists; }
 
   void set_collector(CMSCollector* collector) { _collector = collector; }
 
   // Support for parallelization of rescan and marking
   const size_t rescan_task_size()  const { return _rescan_task_size;  }

@@ -564,11 +564,11 @@
   size_t expansionSpaceRequired(size_t obj_size) const;
 
   FreeChunk* allocateScratch(size_t size);
 
   // returns true if either the small or large linear allocation buffer is empty.
-  bool       linearAllocationWouldFail();
+  bool       linearAllocationWouldFail() const;
 
   // Adjust the chunk for the minimum size.  This version is called in
   // most cases in CompactibleFreeListSpace methods.
   inline static size_t adjustObjectSize(size_t size) {
     return (size_t) align_object_size(MAX2(size, (size_t)MinChunkSize));

@@ -583,10 +583,13 @@
   virtual size_t minimum_free_block_size() const { return MinChunkSize; }
   void      removeFreeChunkFromFreeLists(FreeChunk* chunk);
   void      addChunkAndRepairOffsetTable(HeapWord* chunk, size_t size,
               bool coalesced);
 
+  // Support for decisions regarding concurrent collection policy
+  bool should_concurrent_collect() const;
+
   // Support for compaction
   void prepare_for_compaction(CompactPoint* cp);
   void adjust_pointers();
   void compact();
   // reset the space to reflect the fact that a compaction of the

@@ -620,11 +623,11 @@
   // coalescing of smaller chucks, etc.  The counts in the
   // census is used to make decisions on splitting and
   // coalescing of chunks during the sweep of garbage.
 
   // Print the statistics for the free lists.
-  void printFLCensus(int sweepCt)         const;
+  void printFLCensus(size_t sweep_count) const;
 
   // Statistics functions
   // Initialize census for lists before the sweep.
   void beginSweepFLCensus(float sweep_current,
                           float sweep_estimate);

@@ -633,16 +636,15 @@
   // Set the hint for each of the free lists.
   void setFLHints();
   // Clear the census for each of the free lists.
   void clearFLCensus();
   // Perform functions for the census after the end of the sweep.
-  void endSweepFLCensus(int sweepCt);
+  void endSweepFLCensus(size_t sweep_count);
   // Return true if the count of free chunks is greater
   // than the desired number of free chunks.
   bool coalOverPopulated(size_t size);
 
-
 // Record (for each size):
 //
 //   split-births = #chunks added due to splits in (prev-sweep-end,
 //      this-sweep-start)
 //   split-deaths = #chunks removed for splits in (prev-sweep-end,