src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp

Print this page
rev 4482 : 8013934: Garbage collection event for CMS has wrong cause for System.gc()

@@ -572,10 +572,11 @@
   // Initialization Errors
   bool _completed_initialization;
 
   // In support of ExplicitGCInvokesConcurrent
   static   bool _full_gc_requested;
+  static GCCause::Cause _full_gc_cause;
   unsigned int  _collection_count_start;
 
   // Should we unload classes this concurrent cycle?
   bool _should_unload_classes;
   unsigned int  _concurrent_cycles_since_last_unload;

@@ -903,15 +904,15 @@
 
   void collect(bool   full,
                bool   clear_all_soft_refs,
                size_t size,
                bool   tlab);
-  void collect_in_background(bool clear_all_soft_refs);
-  void collect_in_foreground(bool clear_all_soft_refs);
+  void collect_in_background(bool clear_all_soft_refs, GCCause::Cause cause);
+  void collect_in_foreground(bool clear_all_soft_refs, GCCause::Cause cause);
 
   // In support of ExplicitGCInvokesConcurrent
-  static void request_full_gc(unsigned int full_gc_count);
+  static void request_full_gc(unsigned int full_gc_count, GCCause::Cause cause);
   // Should we unload classes in a particular concurrent cycle?
   bool should_unload_classes() const {
     return _should_unload_classes;
   }
   bool update_should_unload_classes();