312 // Update above counter, as appropriate, at the end of a concurrent GC cycle 313 unsigned int update_full_collections_completed(unsigned int count); 314 315 // Update "time of last gc" for all generations to "now". 316 void update_time_of_last_gc(jlong now) { 317 _young_gen->update_time_of_last_gc(now); 318 _old_gen->update_time_of_last_gc(now); 319 } 320 321 // Update the gc statistics for each generation. 322 void update_gc_stats(Generation* current_generation, bool full) { 323 _old_gen->update_gc_stats(current_generation, full); 324 } 325 326 bool no_gc_in_progress() { return !is_gc_active(); } 327 328 // Override. 329 void prepare_for_verify(); 330 331 // Override. 332 void verify(bool silent, VerifyOption option); 333 334 // Override. 335 virtual void print_on(outputStream* st) const; 336 virtual void print_gc_threads_on(outputStream* st) const; 337 virtual void gc_threads_do(ThreadClosure* tc) const; 338 virtual void print_tracing_info() const; 339 virtual void print_on_error(outputStream* st) const; 340 341 // PrintGC, PrintGCDetails support 342 void print_heap_change(size_t prev_used) const; 343 344 // The functions below are helper functions that a subclass of 345 // "CollectedHeap" can use in the implementation of its virtual 346 // functions. 347 348 class GenClosure : public StackObj { 349 public: 350 virtual void do_generation(Generation* gen) = 0; 351 }; 352 353 // Apply "cl.do_generation" to all generations in the heap 354 // If "old_to_young" determines the order. 355 void generation_iterate(GenClosure* cl, bool old_to_young); 356 357 // Return "true" if all generations have reached the 358 // maximal committed limit that they can reach, without a garbage 359 // collection. 360 virtual bool is_maximal_no_gc() const; 361 362 // This function returns the CardTableRS object that allows us to scan | 312 // Update above counter, as appropriate, at the end of a concurrent GC cycle 313 unsigned int update_full_collections_completed(unsigned int count); 314 315 // Update "time of last gc" for all generations to "now". 316 void update_time_of_last_gc(jlong now) { 317 _young_gen->update_time_of_last_gc(now); 318 _old_gen->update_time_of_last_gc(now); 319 } 320 321 // Update the gc statistics for each generation. 322 void update_gc_stats(Generation* current_generation, bool full) { 323 _old_gen->update_gc_stats(current_generation, full); 324 } 325 326 bool no_gc_in_progress() { return !is_gc_active(); } 327 328 // Override. 329 void prepare_for_verify(); 330 331 // Override. 332 void verify(VerifyOption option); 333 334 // Override. 335 virtual void print_on(outputStream* st) const; 336 virtual void print_gc_threads_on(outputStream* st) const; 337 virtual void gc_threads_do(ThreadClosure* tc) const; 338 virtual void print_tracing_info() const; 339 virtual void print_on_error(outputStream* st) const; 340 341 // PrintGC, PrintGCDetails support 342 void print_heap_change(size_t young_prev_used, size_t old_prev_used) const; 343 344 // The functions below are helper functions that a subclass of 345 // "CollectedHeap" can use in the implementation of its virtual 346 // functions. 347 348 class GenClosure : public StackObj { 349 public: 350 virtual void do_generation(Generation* gen) = 0; 351 }; 352 353 // Apply "cl.do_generation" to all generations in the heap 354 // If "old_to_young" determines the order. 355 void generation_iterate(GenClosure* cl, bool old_to_young); 356 357 // Return "true" if all generations have reached the 358 // maximal committed limit that they can reach, without a garbage 359 // collection. 360 virtual bool is_maximal_no_gc() const; 361 362 // This function returns the CardTableRS object that allows us to scan |