< prev index next >

src/share/vm/runtime/safepoint.cpp

Print this page
rev 12906 : [mq]: gc_interface

*** 58,71 **** #include "services/runtimeService.hpp" #include "trace/tracing.hpp" #include "trace/traceMacros.hpp" #include "utilities/events.hpp" #include "utilities/macros.hpp" - #if INCLUDE_ALL_GCS - #include "gc/cms/concurrentMarkSweepThread.hpp" - #include "gc/g1/suspendibleThreadSet.hpp" - #endif // INCLUDE_ALL_GCS #ifdef COMPILER1 #include "c1/c1_globals.hpp" #endif // -------------------------------------------------------------------------------------------------- --- 58,67 ----
*** 89,107 **** if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) { _safepoint_begin_time = os::javaTimeNanos(); _ts_of_current_safepoint = tty->time_stamp().seconds(); } ! #if INCLUDE_ALL_GCS ! if (UseConcMarkSweepGC) { ! // In the future we should investigate whether CMS can use the ! // more-general mechanism below. DLD (01/05). ! ConcurrentMarkSweepThread::synchronize(false); ! } else if (UseG1GC) { ! SuspendibleThreadSet::synchronize(); ! } ! #endif // INCLUDE_ALL_GCS // By getting the Threads_lock, we assure that no threads are about to start or // exit. It is released again in SafepointSynchronize::end(). Threads_lock->lock(); --- 85,95 ---- if (PrintSafepointStatistics || PrintSafepointStatisticsTimeout > 0) { _safepoint_begin_time = os::javaTimeNanos(); _ts_of_current_safepoint = tty->time_stamp().seconds(); } ! Universe::heap()->safepoint_synchronize_begin(); // By getting the Threads_lock, we assure that no threads are about to start or // exit. It is released again in SafepointSynchronize::end(). Threads_lock->lock();
*** 506,523 **** // Release threads lock, so threads can be created/destroyed again. It will also starts all threads // blocked in signal_thread_blocked Threads_lock->unlock(); } ! #if INCLUDE_ALL_GCS ! // If there are any concurrent GC threads resume them. ! if (UseConcMarkSweepGC) { ! ConcurrentMarkSweepThread::desynchronize(false); ! } else if (UseG1GC) { ! SuspendibleThreadSet::desynchronize(); ! } ! #endif // INCLUDE_ALL_GCS // record this time so VMThread can keep track how much time has elapsed // since last safepoint. _end_of_last_safepoint = os::javaTimeMillis(); if (event.should_commit()) { --- 494,504 ---- // Release threads lock, so threads can be created/destroyed again. It will also starts all threads // blocked in signal_thread_blocked Threads_lock->unlock(); } ! Universe::heap()->safepoint_synchronize_end(); // record this time so VMThread can keep track how much time has elapsed // since last safepoint. _end_of_last_safepoint = os::javaTimeMillis(); if (event.should_commit()) {
< prev index next >