< prev index next >

src/share/vm/runtime/safepoint.hpp

Print this page
rev 13047 : [mq]: 8180932.patch

@@ -49,10 +49,12 @@
 
 
 class ThreadSafepointState;
 class SnippetCache;
 class nmethod;
+class WorkGang;
+class SubTasksDone;
 
 //
 // Implements roll-forward to safepoint (safepoint synchronization)
 //
 class SafepointSynchronize : AllStatic {

@@ -73,10 +75,21 @@
   enum SafepointTimeoutReason {
     _spinning_timeout = 0,
     _blocking_timeout = 1
   };
 
+  enum SafepointCleanupTasks {
+    SAFEPOINT_CLEANUP_DEFLATE_MONITORS,
+    SAFEPOINT_CLEANUP_UPDATE_INLINE_CACHES,
+    SAFEPOINT_CLEANUP_COMPILATION_POLICY,
+    SAFEPOINT_CLEANUP_SYMBOL_TABLE_REHASH,
+    SAFEPOINT_CLEANUP_STRING_TABLE_REHASH,
+    SAFEPOINT_CLEANUP_CLD_PURGE,
+    // Leave this one last.
+    SAFEPOINT_CLEANUP_NUM_TASKS
+  };
+
   typedef struct {
     float  _time_stamp;                        // record when the current safepoint occurs in seconds
     int    _vmop_type;                         // type of VM operation triggers the safepoint
     int    _nof_total_threads;                 // total number of Java threads
     int    _nof_initial_running_threads;       // total number of initially seen running threads

@@ -101,10 +114,11 @@
   // safepoint. The fact that Threads_lock is held throughout each pair of
   // increments (at the beginning and end of each safepoint) guarantees
   // race freedom.
 public:
   static volatile int _safepoint_counter;
+  static uint _num_cleanup_workers;
 private:
   static long       _end_of_last_safepoint;     // Time of last safepoint in milliseconds
 
   // Statistics
   static jlong            _safepoint_begin_time;     // time when safepoint begins

@@ -127,10 +141,14 @@
   }
 
   // For debug long safepoint
   static void print_safepoint_timeout(SafepointTimeoutReason timeout_reason);
 
+  // Parallel cleanup
+  static WorkGang* _cleanup_workers;
+  static SubTasksDone* _cleanup_subtasks;
+
 public:
 
   // Main entry points
 
   // Roll all threads forward to safepoint. Must be called by the
< prev index next >