< prev index next >

src/share/vm/runtime/safepoint.hpp

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

*** 49,58 **** --- 49,60 ---- class ThreadSafepointState; class SnippetCache; class nmethod; + class WorkGang; + class SubTasksDone; // // Implements roll-forward to safepoint (safepoint synchronization) // class SafepointSynchronize : AllStatic {
*** 73,82 **** --- 75,95 ---- 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,110 **** --- 114,124 ---- // 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,136 **** --- 141,154 ---- } // 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 >